我正在使用MS Sql Server 2000,对于在查询分析器中运行查询时的许多查询,在统计信息打开的情况下,统计信息选项卡中报告的数字与查询分析器中显示的值极为不同。当探查器和分析器同时运行时,一些查询报告在Analyzer中读取200次,而Profiler报告查询预先形成14000次读取。基于查询性能,在我看来,Profiler是正确的。但是,为什么两者之间存在如此大的差异?有没有其他人有相同的事情经历?
答案 0 :(得分:1)
这两个实用程序做了不同的事情:
SQL Profiler 会监视正在发生的事情并对其进行报告。
查询分析器查看SQL代码并确定如何运行它。
查询分析器使用统计信息来确定它将要执行的操作,但结果是一个行动计划,即使显示了统计信息。
SQL事件探测器事后报告发生的事情 - 它更准确,但具有追溯性。
如果发现查询分析器变得非常不准确,请尝试更新统计信息。