Sql server 关于缓存的SQL查询性能测试
形势 我们计划将整个(生产)DWH迁移到一个新集群。其中一个要求是新集群的速度至少与当前集群的速度相同。这需要以当前集群作为基线进行性能测试 在进行这些测试时,我们希望两个环境在行为方面几乎相同 我已经可以从实时生产集群克隆用户行为,并在新集群上执行它。留下缓存待处理 捕获 因为我们要将这个新集群与实时生产环境进行比较,所以我不能简单地清除两个服务器的缓存。清除新集群的缓存是可能的,因为它尚未投入生产。但是,我不打算清除实时生产集群的缓存,因为这仍然在使用,并且会对性能产生很大影响 我想知道是否可以克隆/模拟两个集群之间的缓存Sql server 关于缓存的SQL查询性能测试,sql-server,tsql,testing,sql-server-2014,Sql Server,Tsql,Testing,Sql Server 2014,形势 我们计划将整个(生产)DWH迁移到一个新集群。其中一个要求是新集群的速度至少与当前集群的速度相同。这需要以当前集群作为基线进行性能测试 在进行这些测试时,我们希望两个环境在行为方面几乎相同 我已经可以从实时生产集群克隆用户行为,并在新集群上执行它。留下缓存待处理 捕获 因为我们要将这个新集群与实时生产环境进行比较,所以我不能简单地清除两个服务器的缓存。清除新集群的缓存是可能的,因为它尚未投入生产。但是,我不打算清除实时生产集群的缓存,因为这仍然在使用,并且会对性能产生很大影响 我想知道是否
在这个问题上,我也愿意采取完全不同的方法。我认为你的做法是错误的,原因如下。我假设如下:
- 新集群的硬件与前一集群的供应商、质量等相同
- 在新实例上,内核/CPU、RAM等与新实例一样好或更好
- 该实例的版本相同,或者是SQL Server的升级版本。注意,升级并不意味着查询在所有情况下都会执行得更好
- 存储相同或更好(SAN/NAS配置)
- 服务器设置相同(MAXDOP等)
尽管如此,大多数情况下,您都是在升级到更快、更好的硬件,以便在假设配置相同的情况下,您可以放心地认为它会更快,或者至少不会更慢。此外,还有很多性能调整博客,来自Dave Pinal、Paul White、Brent Ozar、Paul Randall、Aaron Bertrand等。。。从最佳服务器设置到查询优化。仅此一点,就可能是性能上的日夜差异以及适当的数据库维护(修复索引碎片、修复数百或数千个只使用一次的计划的查询、修复一般索引等)我正在从最终用户的角度对此进行测试。这是因为它的承包方式。合同基本上是这样写的:“你们这些新手,只要终端用户的查询速度不慢,就做你们需要做的事情。”因此,我的任务就是从终端用户的角度对其进行测试。因此,我想测试新服务器的性能是否至少也一样好。我的观点是,有两个不同的缓存,它不会做出公平的比较。我改变了主意,决定让测试运行更长的时间,并比较所有查询的平均处理时间。这些不应该受到太大的影响