db2_查詢鎖方法

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      8  78171.25    612.45

  1 條記錄已選擇。


2.1通過管理視圖查詢
--db2 select * from SYSIBMADM.LOCKS_HELD
SNAPSHOT_TIMESTAMP         DB_NAME  AGENT_ID     APPL_NAME  AUTHID  
-------------------------- -------- ------------ ---------- ------- 
2011-08-03-16.20.17.373920 SAMPLE            300 db2bp.exe  mh  
2011-08-03-16.20.17.373920 SAMPLE            300 db2bp.exe  mh  
2011-08-03-16.20.17.373920 SAMPLE            300 db2bp.exe  mh  
2011-08-03-16.20.17.373920 SAMPLE            300 db2bp.exe  mh  
2011-08-03-16.20.17.373920 SAMPLE            300 db2bp.exe  mh 


TBSP_NAME  TABSCHEMA   TABNAME  TAB_FILE_ID    LOCK_OBJECT_TYPE   
---------- ----------- -------- -------------- ------------------ 
-          -           -                     0 INTERNALV_LOCK     
USERSPACE1 mh      STAFF                15 ROW_LOCK           
-          -           -                     0 INTERNALV_LOCK     
-          -           -                     0 INTERNALP_LOCK     
USERSPACE1 mh      STAFF                15 TABLE_LOCK        


LOCK_NAME                        LOCK_MODE  LOCK_STATUS LOCK_ESCALATION DBPARTITIONNUM 
-------------------------------- ---------- ----------- --------------- -------------- 
0x01000000010000000100A02256     S          GRNT                      0              0 
0x02000F00050000000000000052     U          GRNT                      0              0 
0x02000000010000000100204056     S          GRNT                      0              0 
0x53514C43324832307F4760B841     S          GRNT                      0              0 
0x02000F00000000000000000054     IX         GRNT                      0              0


--db2 SELECT * FROM SYSIBMADM.SNAPLOCK
SNAPSHOT_TIMESTAMP         AGENT_ID TAB_FILE_ID  LOCK_OBJECT_TYPE   LOCK_MODE  
-------------------------- -------- ------------ ------------------ ---------- 
2011-08-03-16.21.58.921579      300           0  INTERNALV_LOCK     S          
2011-08-03-16.21.58.921579      300           0  INTERNALP_LOCK     S         


LOCK_STATUS LOCK_ESCALATION TABNAME  TABSCHEMA   TBSP_NAME LOCK_ATTRIBUTES LOCK_COUNT 
----------- --------------- -------- ----------- --------- --------------- ---------- 
GRNT                      0 -        -           -         NONE            1          
GRNT                      0 -        -           -         NONE            1         


LOCK_CURRENT_MODE LOCK_HOLD_COUNT  LOCK_NAME                        LOCK_RELEASE_FLAGS    
----------------- ---------------- -------------------------------- --------------------  
-                                0 0x01000000020000000100207356               1073741824  
-                                0 0x53514C43324832307F4760B841               1073741824 


DATA_PARTITION_ID DBPARTITIONNUM    
----------------- --------------    
                -              0    
                -              0   


2.2使用表函數
--db2 SELECT * FROM TABLE(SNAP_GET_LOCK('SAMPLE',-1)) AS SNAPLOCK
SNAPSHOT_TIMESTAMP         AGENT_ID    TAB_FILE_ID   LOCK_OBJECT_TYPE   
-------------------------- ----------- ------------- ------------------ 
2011-08-03-16.47.14.996360         300             0 INTERNALV_LOCK     
2011-08-03-16.47.14.996360         300             0 INTERNALP_LOCK    

LOCK_MODE  LOCK_STATUS LOCK_ESCALATION TABNAME   
---------- ----------- --------------- --------- 
S          GRNT                      0 -         
S          GRNT                      0 -        

TABSCHEMA  TBSP_NAME  LOCK_ATTRIBUTES  LOCK_COUNT  
---------- ---------- ---------------- ----------- 
-          -          NONE                       1 
-          -          NONE                       1

LOCK_CURRENT_MODE LOCK_HOLD_COUNT      LOCK_NAME                        
----------------- -------------------- -------------------------------- 
-                                    0 0x01000000020000000100805E56     
-                                    0 0x53514C43324832307F4760B841    

LOCK_RELEASE_FLAGS   DATA_PARTITION_ID DBPARTITIONNUM 
-------------------- ----------------- -------------- 
          1073741824                 -              0 
          1073741824                 -              0

--db2 SELECT * FROM TABLE(SNAPSHOT_LOCK('SAMPLE',-1)) AS SNAPLOCK
SNAPSHOT_TIMESTAMP         AGENT_ID    TABLE_FILE_ID  LOCK_OBJECT_TYPE  
-------------------------- ----------- -------------- ----------------- 
2011-08-03-16.50.44.806587         300              0                 9 
2011-08-03-16.50.44.806587         300              0                 8

LOCK_MODE  LOCK_STATUS   LOCK_OBJECT_NAME     PARTITION_NUMBER 
---------- ------------- -------------------- ---------------- 
         3             1                    0                - 
         3             1                    0                -

LOCK_ESCALATION TABLE_NAME TABLE_SCHEMA  TABLESPACE_NAME 
--------------- ---------- ------------- ----------------
              0 -          -             -               
              0 -          -             -             

2.3CLP
--db2 get snapshot for locks on sample

            數據庫鎖定快照

數據庫名稱                               = SAMPLE
數據庫路徑                          = C:\DB2\NODE0000\SQL00001\
輸入數據庫別名                      = SAMPLE
掛起的鎖定                      = 16
當前已連接的應用程序            = 4
當前正等待鎖定的代理程序數      = 0
快照時間戳記                    = 2011-08-03 16:17:06.280072

...

應用程序句柄                               = 300
應用程序標識                        = *LOCAL.DB2.110803055722
序號                                = 00006
應用程序名                          = db2bp.exe
CONNECT 授權標識                           = mh
應用程序狀態                        = UOW 正在等待
狀態更改時間                        = 未收集
應用程序代碼頁                             = 1386
掛起的鎖定                      = 4
總計等待時間(毫秒)            = 0

鎖定列表
 鎖定名稱                       = 0x02000F00050000000000000052
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x00000001
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 5
 對象類型                       = 行
 表空間名                       = USERSPACE1
 表模式               = mh
 表名                 = STAFF
 方式                           = U

 鎖定名稱                       = 0x02000000010000000100204056
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x40000000
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 0
 對象類型                       = 內部變化鎖定
 方式                           = S

 鎖定名稱                       = 0x53514C43324832307F4760B841
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x40000000
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 0
 對象類型                       = 內部方案鎖定
 方式                           = S

 鎖定名稱                       = 0x02000F00000000000000000054
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x00000001
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 15
 對象類型                       = 表
 表空間名                       = USERSPACE1
 表模式               = mh
 表名                 = STAFF
 方式                           = IX

--db2 get snapshot for locks for application agentid 300

            應用程序鎖定快照

快照時間戳記                    = 2011-08-03 16:19:18.814303

應用程序句柄                               = 300
應用程序標識                        = *LOCAL.DB2.110803055722
序號                                = 00006
應用程序名                          = db2bp.exe
CONNECT 授權標識                           = mh
應用程序狀態                        = UOW 正在等待
狀態更改時間                        = 未收集
應用程序代碼頁                             = 1386
掛起的鎖定                      = 4
總計等待時間(毫秒)            = 0

鎖定列表
 鎖定名稱                       = 0x02000F00050000000000000052
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x00000001
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 5
 對象類型                       = 行
 表空間名                       = USERSPACE1
 表模式               = mh
 表名                 = STAFF
 方式                           = U

 鎖定名稱                       = 0x02000000010000000100204056
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x40000000
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 0
 對象類型                       = 內部變化鎖定
 方式                           = S

 鎖定名稱                       = 0x53514C43324832307F4760B841
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x40000000
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 0
 對象類型                       = 內部方案鎖定
 方式                           = S

 鎖定名稱                       = 0x02000F00000000000000000054
 鎖定屬性                       = 0x00000000
 發行版標誌                     = 0x00000001
 鎖定計數                       = 1
 掛起計數                       = 0
 鎖定對象名                     = 15
 對象類型                       = 表
 表空間名                       = USERSPACE1
 表模式               = mh
 表名                 = STAFF
 方式                           = IX


2.4 db2pd工具
--db2pd -inst db2 -db sample -locks
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 05:38:35  
Locks:
Address    TranHdl Lockname                   Type  Mode Sts Owner Dur HoldCount Att        ReleaseFlg rrIID
0x7FC75200 8       02001C00000000000000000054 Table .IN  G   8     1   1         0x00002000 0x40000000 0     
0x7FC71A80 6       02001600000000000000000054 Table .IX  G   6     1   1         0x00003000 0x40000000 0     
0x7FC74300 9       02001D00000000000000000054 Table .IN  G   9     3   1         0x00002000 0x40000000 0     
0x7FC74C80 8       02001700000000000000000054 Table .IN  G   8     3   1         0x00002000 0x40000000 0     
0x7FC74400 9       02001E00000000000000000054 Table .IN  G   9     1   1         0x00002000 0x40000000 0     
0x7FC74D80 8       02001800000000000000000054 Table .IN  G   8     1   1         0x00002000 0x40000000 0     
0x7FC74E80 8       02001900000000000000000054 Table .IN  G   8     1   1         0x00002000 0x40000000 0     
0x7FC71B00 6       02001300000000000000000054 Table .IX  G   6     1   1         0x00003000 0x40000000 0     
0x7FC74F80 8       02001A00000000000000000054 Table .IN  G   8     1   1         0x00002000 0x40000000 0     
0x7FC71980 6       02001400000000000000000054 Table .IX  G   6     1   1         0x00003000 0x40000000 0     
0x7FC75100 8       02001B00000000000000000054 Table .IN  G   8     1   1         0x00002000 0x40000000 0     
0x7FC71A00 6       02001500000000000000000054 Table .IX  G   6     1   1         0x00003000 0x40000000 0   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章