ImG*_*reg 4 sql t-sql performance sql-server-2008
我正在努力提高SQL-Server-2008上一些SQL查询的效率.有不同的方法来执行每个查询,我想找到最快的.
但是,我遇到的问题是我无法确定哪个实际上执行得更快.理想情况下,我可以一个接一个地运行每个查询,看看哪个运行最快.理想的情况下...
问题是,SQL对我来说太聪明了.在构造这些查询时,我多次运行它们.当我这样做时,查询的效率会自行提高.我想成像是因为SQL所做的一些幕后工作.这是什么?我怎么能避免呢?
例如,我运行一次查询,需要30秒.我再次运行它需要10秒.运行查询的次数越多,运行速度就越快.
那么..有没有"清除缓存"的方法或SQL中的等价物?我想准确地指出哪个查询实际上运行得更快.或者,什么是我想要的测试类型的最佳方法?
有关此主题的任何信息都将被接受为有效输入.
当首先运行查询时,数据很可能仍在磁盘上,SQl Server必须获取此数据,当您运行相同的查询时,数据已经在RAM中,因此它将比进入磁盘快得多
运行DBCC DROPCLEANBUFFERS并DBCC FREEPROCCACHE清除缓存而不重新启动
您需要查看执行计划,统计信息和统计时间,才能真正了解正在发生的事情.在计划中寻找转换和扫描(如果可能,您希望寻找).
| 归档时间: |
|
| 查看次数: |
1510 次 |
| 最近记录: |