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

标签 sql sql-server t-sql sql-server-2014

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

我可以对 T-SQL 做些什么来使其不使用缓存版本?我问这个问题是因为我想使用 SQL 来使其更快,但我无法判断我是否有所作为,因为只有第一次运行我的脚本时速度很慢。

最佳答案

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

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

关于SQL - 仅在第一次运行时缓慢...无法判断我的更改是否使其更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35165881/

相关文章:

用于计算子组中的排名和中位数的 SQL 排名查询

sql - 立即执行 ' some commands '

sql-server - 如果值为 null 则获取先前的值 sql server 2008

sql-server - 如何将 SQL Server Express 实例从 2012 升级到 2014

sql-server - SQL Server : One Table with 400 Columns or 40 Tables with 10 Columns?

t-sql - 如何在sql中计算大组合量

mysql - Java 和 MySQL 性能问题

sql - 如何编写查询来识别发音相似的名字?

sql - 查找没有匹配条件的记录

sql - Group BY 有 COUNT 个,但对不包含在组中的列进行排序