可以使用 onstat -k 命令打印活动锁的信息,包括锁表中的该锁的地址。
语法:
示例输出
GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 637 -
可用锁的最大数量由 onconfig 文件中的 LOCKS 配置参数进行指定。
图: onstat -k 命令输出
在以下输出中,最后一行的数字 2 显示的是一个 Enterprise Replication 伪锁:
输出描述
address
锁表中锁的地址
如果用户线程正在等待该锁,那么锁的地址出现在 onstat -u (用户)输出的 wait 字段中。
wtlist
是正在等待锁的用户线程(如果有)列表中的第一项
owner
是正持有锁的线程的共享内存地址
此地址对应于 onstat -u (用户)输出的 address 字段中的地址。当 owner 值显示在括号
中时,它代表事务结构的共享内存地址。只有锁是为全局事务而分配时,才会出现这种情
况。该地址对应于 onstat -G 的输出的地址字段
lklist
是刚才列出的所有者所持有的链接列表中的下一个锁
type
使用以下代码指定锁的类型:
HDR
头
B
字节
S
共享
X
互斥
I
意向
U
更新
GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 638 -
IX
意向—互斥
IS
意向—共享
SIX
共享,意向—互斥
tblsnum
是锁定资源的 tblspace 编号。如果数值小于 10000,那么它表示 Enterprise Replication 伪
锁
rowid
是行标识号
Rowid 提供以下锁的信息:
l 如果 rowid 等于 0 那么该锁为表锁
l 如果 rowid 以两个 0 结束,那么该锁为页锁
l 如果 rowid 为 6 个数字或更少且不以 0 结束,那么该锁很可能是行锁
l 如果 rowid 多于 6 个数字,那么该锁很可能是索引键值锁
key#/bsiz
是索引键号或对于 VARCHAR 锁的已锁定字节数
如果该字段包含 'K-' ,后跟值,那么是键锁。值标识哪个索引正在被锁定。例如:K-1 表
示对表所定义的第一个索引上的锁。