在onstat -p的输出结果中,可以看到deadlks表示死锁发生的次数。
如果deadlks的值偏大,就需要在实际环境中抓取和分析死锁产生的SQL语句了。
如何抓取死锁产生的SQL语句呢?
方法一:
1、打开sqltrace,具体方法见前面的某个文章;
2、select * from sysmaster:syssqltrace where sql_sqlerror='-243' and sql_isamerror='-143'
方法二:
1、利用onmode -I [<iserrno>|<session ID>] onmode -I -243
2、onmode -I 停止跟踪
但是根据实际的经验来看,onmode -I的方法貌似不是那么靠谱,可能会出现不可预想的问题,所以我还是推荐使用sqltrace来监控。
本文介绍在数据库中监控死锁次数并抓取产生死锁的SQL语句的两种方法:使用sqltrace和onmode-I。推荐使用sqltrace进行监控,避免onmode-I可能带来的不可预知问题。

1041

被折叠的 条评论
为什么被折叠?



