可以分析有关锁定的信息并通过查看包含存储锁定的内部锁表中的信息来监视锁定。
图: onstat -k 输出
Locks address wtlist owner lklist type tblsnum rowid key#/bsiz 300b77d0 0 40074140 0 HDR+S 10002 106 0 300b7828 0 40074140 300b77d0 HDR+S 10197 123 0 300b7854 0 40074140 300b7828 HDR+IX 101e4 0 0 300b78d8 0 40074140 300b7854 HDR+X 101e4 102 0 4 active, 5000 total, 8192 hash buckets
SELECT *
FROM SYSTABLES
WHERE HEX(PARTNUM) = "tblsnum";
其中,tblsnum 为 onstat -k 返回的修改值。例如,如果 onstat -k 返回 10027f,那么 tbslnum 为 0x0010027F。
您还可以查询 sysmaster 数据库中的 syslocks 表,以获取有关每个活动锁定的信息。syslocks 表包含以下各列。
列 | 描述 |
---|---|
dbsname | 对其保持锁定的数据库 |
tabname | 对其保持锁定的表的名称 |
rowidlk | 持有锁定的行的标识(0 指示表锁定。) |
keynum | 行的关键字数 |
type | 锁定类型 |
owner | 锁定所有者的会话标识 |
waiter | 锁定的第一个等待者的会话标识 |