如果遇到死锁的问题,如何来调查原因呢? (From DBMR1703, version: DBMaster 4.1.2, OS: Windows XP Embedded SP1)

~ 0 min
2016-02-23 08:08

为了调查原因,首先要监测锁,例如,如下所示:

dmSQL> select USER_NAME, TABLE_NAME, SYSLOCK.LK_OBJECT_ID,

SYSLOCK.LK_GRAN, SYSLOCK.HOLD_LK_CONNECTION, SYSLOCK.LK_CURRENT_MODE

from SYSLOCK, SYSTEM.SYSTABLE, SYSUSER where HOLD_LK_CONNECTION = CONNECTION_ID and LK_OBJECT_ID = TABLE_OID and TABLE_OWNER != 'SYSTEM' and LK_GRAN != 'SYSTEM';

 

USER_NAME  TABLE_NAME  LK_OBJECT_ID     LK_GRAN   HOLD_LK_CONNECTION   LK_CURRENT_MODE

==========   ==========    ==============   ========   ====================    ==================

SYSADM                          D    1b00000000000600     TABLE                                       575                                      X

1 rows selected

然后当死锁发生时,应该每隔几秒中就select SYSUSER来获得锁状态信息。

从以上获得的所有信息对调查死锁的原因都是有帮助的。

平均分: 0 (0 投票)

你不能对该内容发表评论

标签