我正在重新设计一些数据库表。我在同一张表中有2个可用于查询数据的键,我想比较它们之间的性能差异。使用较新的键进行查询的速度较慢,因此我希望有一种方法,可以在更改架构以重新评估查询性能后运行。
我了解MS SQL Server和SET STATISTICS IO, TIME ON
中的执行计划。但是,我想花费一个非常简单的绝对时间,这可以给我带来现实的结果。考虑到每个查询大约需要4秒钟,因此我必须在一个循环中连续多次运行相同的查询。我目前有:
USE [MyDb]
CHECKPOINT
DBCC FREESYSTEMCACHE('ALL')
<query>
如果我通过powershel sqlcmd
在循环中运行了上述内容,那么清除缓存是否足以清除在当前运行之前运行同一查询的影响?
答案 0 :(得分:0)
我最终使用了以下代码段:
CHECKPOINT
DBCC FREESYSTEMCACHE('ALL')
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE