SQL - 仅在第一个 运行 时变慢...无法判断我的更改是否使其变快

SQL - slow only on first run...can't tell if my changes make it faster or not

我有一个由 3 个查询组成的 SQL 脚本,在 SQL Management Studio 中的第一个 运行 中 运行 非常慢(大约 90 秒)。随后的 运行 秒仅需 0-5 秒。显然,它正在缓存它。我在顶部声明并使用了一些键和变量,想知道我的脚本修改是否对性能产生了影响,但如果第二次总是更快,我就不知道了。

我可以对 T-SQL 做些什么来让它不使用缓存版本?我问这个是因为我想玩 SQL 以使其更快,但我不知道我是否有所作为,因为只有第一次 运行 宁我的脚本很慢。

DBCC DROPCLEANBUFFERS 是您的答案,但不要在生产环境中 运行 它。这会从缓冲区缓存中删除所有内容,并会导致速度减慢,这可能会导致在繁忙的环境中停机。

不要将它与 DBCC FREEPROCCACHE 混淆,在生产中也不应 运行。它会清除所有缓存的查询计划,并导致它们都必须重新编译。但是,您可以指定一个计划句柄来一次执行此操作。