1,获取锁方法:
1.1管理视图:
SELECT * FROM SYSIBMADM.SNAPLOCK
select * from SYSIBMADM.LOCKS_HELD
1.2 表函数:
SELECT * FROM TABLE(SNAP_GET_LOCK('SAMPLE',-1)) AS SNAPLOCK;
SELECT * FROM TABLE(SNAPSHOT_LOCK('SAMPLE',-1)) AS SNAPLOCK;
1.3 CLP:
get snapshot for locks for application applid appl-id
get snapshot for locks for application agentid appl-handle
get snapshot for locks on dbname
1.4 db2bp工具:
db2pd -inst db2 -db sample -locks
2,案例
2.0 环境准备
--db2 connect to sample
--db2 get dbm monitor switches
收集到的 DBM 系统监视器信息
数据库分区号 0 的开关列表
缓冲池活动信息 (BUFFERPOOL) = OFF
锁定信息 (LOCK) = ON 2011-08-03 10:53:09.067114
排序信息 (SORT) = OFF
QL 语句信息 (STATEMENT) = OFF
表活动信息 (TABLE) = OFF
获取时间戳记信息(时间戳记) = ON 2011-08-03 10:51:55.773736
工作单元信息 (UOW) = OFF
--db2 get monitor switches
监视器记录开关
数据库分区号 0 的开关列表
缓冲池活动信息 (BUFFERPOOL) = OFF
锁定信息 (LOCK) = OFF
排序信息 (SORT) = OFF
SQL 语句信息 (STATEMENT) = OFF
表活动信息 (TABLE) = OFF
获取时间戳记信息(时间戳记) = ON 2011-08-03 10:51:55.773736
工作单元信息 (UOW) = OFF
--db2 update monitor switches using LOCK on
DB20000I UPDATE MONITOR SWITCHES 命令成功完成。
--db2 get monitor switches
监视器记录开关
数据库分区号 0 的开关列表
缓冲池活动信息 (BUFFERPOOL) = OFF
锁定信息 (LOCK) = ON 2011-08-03 13:57:43.085020
排序信息 (SORT) = OFF
SQL 语句信息 (STATEMENT) = OFF
表活动信息 (TABLE) = OFF
获取时间戳记信息(时间戳记) = ON 2011-08-03 10:51:55.773736
工作单元信息 (UOW) = OFF
--db2 -c- declare c1 cursor for select * from staff where job='Sales' for update
DB20000I SQL 命令成功完成。
--db2 -c- open c1
DB20000I SQL 命令成功完成。
--db2 -c- fetch c1
ID NAME DEPT JOB YEARS SALARY COMM
------ --------- ------ ----- ------ --------- ---------
20 Pernal 20 Sales