检测/监控参数嗅探问题

sgm*_*ore 8 sql-server performance monitoring

有没有专门监视/检测参数嗅探问题的工具,而不是报告需要很长时间的查询的工具?

我刚刚遇到参数嗅探问题.(它不是太严重,因为它导致报告需要大约2分钟才能运行而不是几秒钟如果正确缓存,如果重新编译可能需要30秒.而且因为报告通常每月只运行几次,所以不是真正的问题).

但是,既然我写了报告并且我知道它做了什么,我很好奇并且正在调查和使用SQL事件探查器,我可以在查询计划中看到估计行数为1的部分,但实际行数是几十万.

所以,让我感到震惊的是,如果SQL有这些数字(或者至少可以得到这些数字),那么也许有一些方法可以让sql跟踪并报告哪些计划显着.

Jus*_*tin -2

您可以设置跟踪来记录持续时间 > Ns 的所有批处理/存储过程运行的查询文本。

显然,您需要为您的系统定制 N (并且可能添加规则来排除即使在正常执行期间也需要很长时间的批处理作业),但这应该识别哪些查询提供最差的性能,并且还将记录任何查询(及其参数) )其执行时间异常长 - 可能是参数嗅探问题的结果。

有关如何使用 T-SQL 创建跟踪的信息,请参阅如何使用 T-SQL 创建 SQL 跟踪。这将比使用 SQL Profiler 提供更好的性能,因为它仅捕获您为其设置跟踪事件的事件(据报道,SQL Profiler 捕获所有事件,然后在应用程序中过滤它们)。