众所周知,
运行分析器会消耗大量资源,具体取决于所监视的事件。
我感兴趣的是监控偶尔发生的死锁(每周 3 至 5 次)。
使用 SQL Server 事件探查器进行以下事件选择(每个事件,但TSQL_Locks
模板中突出显示的事件除外)
仅监控生产数据库的锁定(连续一周不间断)会减慢速度吗?
是否有任何经验法则 什么时候和多久运行分析器来查找死锁?
答案1
改用服务器端跟踪。搜索使用 Profiler 创建服务器端跟踪以了解详细信息。
这是一个不错的博客文章关于该主题。这是减少对生产数据库影响的最佳方法。
您的另一个选择是打开跟踪标志 1204 和/或 1222 并监视错误日志中的输出。
您应该运行跟踪多长时间?足够长的时间找出并修复所涉及的代码。修复完成后,您还需要再次运行跟踪,以确保不会再次发生。
可能有人认为启用跟踪标志总是明智的。我认为这取决于应用程序,因为跟踪标志也会产生额外的负载。