有没有办法防止SQL缓存的重复调用和更快?

use*_*427 6 sql sql-server

我需要在1-2秒内运行几个查询.我一直在努力优化它们,但是第一次调用它们需要大约20秒,在所有后续调用中大约需要1秒.这使我无法判断我所做的任何更改是否会加快查询速度,因为它总是在〜1秒后运行.我对SQL并不十分熟悉,但从我能够学到的东西来看,似乎有些东西就是缓存.我正在试图弄清楚如何防止这种情况,但似乎没有任何效果.从我在Google上发现的,人们一直在暗示

DBCC FREEPROCCACHE
Run Code Online (Sandbox Code Playgroud)

要么

OPTION(recompile)
Run Code Online (Sandbox Code Playgroud)

这些似乎都不起作用.当第一次使用~20时,每个查询仍在~1秒内运行.我只想确保我所做的更改正在带来改进,而不是改进来自缓存.还有其他一些技巧吗?

HOT*_*nKk 0

后续运行速度更快的原因是因为执行计划被缓存了。您对代码的更改要么不足以导致需要重新编译,要么它们实际上正在工作。尝试在客户端统计打开的情况下测试每次运行。Management Studio 中“执行”图标顶部旁边有一个按钮,您可以打开/关闭该按钮。

编辑:打开客户端统计信息的更清晰说明:在顶部菜单中,单击“查询”>“包括客户端统计信息”。