Sql server 执行基准测试时重置缓冲区

Sql server 执行基准测试时重置缓冲区,sql-server,performance,performance-testing,Sql Server,Performance,Performance Testing,我们正在运行性能基准测试,作为发布管道的一部分,在反复运行同一查询时,sql server的结果太好(大约快2-3倍)会出现一些问题 是否有办法刷新此缓冲区以使结果更“真实”。 我们已经尝试过使用DBCC DROPCLEANBUFFERS,但与现实世界相比,它产生的结果要慢得多 这个问题的当前解决方案是只运行一次查询,但这给了我们很多变化。现实世界可能有一个热缓存,因此您可以放弃第一次执行并评估后续运行。请注意的含义,因为存储引擎在冷缓存和热缓存中的行为不同。我们的产品运行聚合,用户不断更改查询

我们正在运行性能基准测试,作为发布管道的一部分,在反复运行同一查询时,sql server的结果太好(大约快2-3倍)会出现一些问题

是否有办法刷新此缓冲区以使结果更“真实”。 我们已经尝试过使用DBCC DROPCLEANBUFFERS,但与现实世界相比,它产生的结果要慢得多


这个问题的当前解决方案是只运行一次查询,但这给了我们很多变化。

现实世界可能有一个热缓存,因此您可以放弃第一次执行并评估后续运行。请注意的含义,因为存储引擎在冷缓存和热缓存中的行为不同。我们的产品运行聚合,用户不断更改查询,因此基本上没有查询与其他查询类似。我们看到的是应用程序内的洞察,在基准测试中,查询的运行速度大约快2-3倍。如果我们只运行一次每个查询,就得到了一个看起来像真实世界的结果,但这并不理想,因为我们想多次运行它们,看看我们有多大的变化。