【发布时间】:2012-04-10 09:46:54
【问题描述】:
我正在努力提高 SQL-Server-2008 上某些 SQL 查询的效率。执行每个查询有不同的方法,我想找到其中最快的方法。
但是,我遇到的问题是我无法确定哪个实际上执行得更快。理想情况下,我可以一个接一个地运行每个查询,看看哪个运行得最快。理想情况下...
问题是,SQL 对我来说太聪明了。在构建这些查询时,我多次运行它们。当我这样做时,查询的效率会自行提高。我想这是因为 SQL 所做的一些幕后工作。这是什么?如何避免?
例如,我运行一次查询,需要 30 秒。我再次运行它,它需要 10 秒。我运行查询的次数越多,它似乎运行得越快。
所以.. 有什么方法可以“清除缓存”或 SQL 中的任何等效方法吗?我想准确指示哪个查询实际上运行得更快。或者,进行我想要的测试类型的最佳方法是什么?
与此主题有关的任何信息都将被视为有效输入。
【问题讨论】:
-
所以您是在代码中“构建”这些查询,然后也从代码中调用它们?
-
是的@Icarus。我正在构建查询,并从 SQL Server 中的查询窗口执行它们。
-
SET STATISTICS IO ON 可以产生质量信息以及实际的执行计划,而不是依赖于查询持续时间(这取决于许多因素)。
标签: sql sql-server performance tsql sql-server-2008