SQL--处理锁、阻塞和死锁(4)

浏览: 2280

前言:

SQLServerProfiler是非常占用资源的,所以不适合长期开启。此时可以考虑使用SQL Trace来代替。由于死锁的发生往往是突然的,所以也不适用于Profiler一直开启跟踪。

本文将演示如何使用sql trace来进行,sql trace会把死锁信息写入SQLServer的错误日志中,以便后续分析之用。

准备工作:

本文使用跟踪标志1204来跟踪服务器级别的死锁问题。本文将使用上文中的脚本来演示。

步骤:

1、 打开SQLServer配置管理器:


2、 选择SQLServer服务并右键属性:


3、 选择【启动参数】,2008和2012的这部分界面有点不同,但是相信大家应该能找到。在启动参数最下面添加-t1204,然后按确定。


4、 然后邮件SQLServer服务并重启:


要注意,尽可能使用SQLServer配置管理器来重启服务,而不要直接使用Windows Services MMC来操作。

5、 现在来重新执行上文中的步骤。

6、 在发生了1205错误之后为止。

7、 现在来查看SQLServer的错误日志,也可以执行xp_readerrorlog系统存储过程来查看。也可以在C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLServer\MSSQL\Log下找到文件(不同机器可能不一样的路径)

8、 下面是从错误日志中找打的截图:

分析:

在SQLServer中,跟踪标志1204用于重定向死锁相关信息到ERRORLOG中,SQLServer将在重启时调用启动参数中的跟踪标志。

启动参数之后在SQLServer 服务重启之后才生效。在重启之后,重做死锁演示,就会把死锁信息写入ERRORLOG中。

资料下载:

推荐 0
本文由 magic12 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册