我有一个由 3 个查询组成的 SQL 脚本,在 SQL Management Studio 中第一次运行时运行速度非常慢(大约 90 秒)。之后立即运行只需 0-5 秒。显然,它正在缓存它。我在顶部声明并使用了一些键和变量,并且想知道我的脚本修改是否对性能产生影响,但如果第二次总是更快,我就无法知道。
我可以对 T-SQL 做些什么来使其不使用缓存版本?我问这个问题是因为我想使用 SQL 来使其更快,但我无法判断我是否有所作为,因为只有第一次运行我的脚本时速度很慢。
最佳答案
DBCC DROPCLEANBUFFERS
是您的答案,但不要在生产环境中运行它。这会删除缓冲区缓存中的所有内容,并会导致速度减慢,从而在繁忙的环境中导致停机。
不要将它与DBCC FREEPROCCACHE
混淆,您也不应该在生产中运行它。它会清除所有缓存的查询计划,并导致它们全部必须经过重新编译。不过,您可以指定一个计划句柄来一次执行此操作。
关于SQL - 仅在第一次运行时缓慢...无法判断我的更改是否使其更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35165881/