收集整理来自于IBM Informix的技术知识库(http://www-900.ibm.com/cn/support/)
1. 通过onstat -k信息发现锁的级别
在IBM Informix数据库维护时,有时知道上了锁,但并不知道锁的级别即是锁了整个表?还是锁了相关的页,还是某一行?下面的例子将解答这个问题。注释:tblsnum 0x100002 是数据库database tablespace,是informix数据库的内部结构,在onstat -k输出中可以忽略相关内容:
Locksaddress wtlist owner lklist type tblsnum rowid key#/bsiz
4409ad50 0 44d5bac0 0 S 00002 303 0
4409ada8 0 44d5bac0 4409ad50 HDR+IX 1003ba 0 0
4409ae00 0 44d5bac0 4409afb8 HDR+X 1003bb 101 K- 1
4409ae58 0 44d5bac0 4409ae00 HDR+X 1003bb 201 K- 1
4409aeb0 0 44d5bac0 4409ae58 HDR+X 1003bc 101 K- 1
4409af08 0 44d5bac0 4409aeb0 HDR+X 1003bc 201 K- 1
4409af60 0 44d5bac0 4409ada8 HDR+X 1003ba 101 0
4409afb8 0 44d5bac0 4409af60 HDR+X 1003ba 201 0
440b0510 0 44d5a878 0 HDR+S 100002 303 0
440b0568 0 44d5a878 440b0510 HDR+IX 1003b8 0 0
440b05c0 0 44d5a878 440b0568 HDR+X 1003b8 300 0
440b0720 0 44d5c0d8 0 S 100002 303 0
440b0778 0 44d5c0d8 440b0720 HDR+X 1003c2 0 0
1、绿色的字显示的是在表0x1003c2上的表级别锁
2、蓝色字显示的是在表0x1003b8第三个页(0x3)的页级锁
3、红色的字显示在表0x1003ba,第二页(0x2)第一个槽的行级锁
4、紫色的字显示的是在表0x1003bb,第一页第一个槽,第二页第一个槽索引(K- 1)上的锁
如果想要知道是哪一个索引引起了锁,可以通过oncheck -pT <0xtblsnum> 查找
$oncheck -pT 0x1003bb | grep “Index Usage Report”
Index Usage Report for index 101_3 on stores_demo:informix.orders
Index Usage Report for index 101_70 on stores_demo:informix.orders 继续阅读