DB2檢視鎖等待的SQL
經常會遇到這樣的問題,開發人員告訴DBA,說在資料庫端可能有鎖,想讓找到哪個SQL引起的鎖
第一步是檢視請求鎖和持有鎖的應用,透過執行一個SQL
SELECT req_application_handle,lock_name, hld_member, lock_status, hld_application_handle FROM TABLE (MON_GET_APPL_LOCKWAIT(NULL, -2))
輸出示例
REQ_APPLICATION_HANDLE LOCK_NAME HLD_MEMBER LOCK_STATUS HLD_APPLICATION_HANDLE
---------------------- -------------------------- ---------- ----------- ----------------------
35925 00020102000000000000000452 0 W 35917
想看兩個application的詳細資訊,可以使用db2pd命令看一下
db2pd -db xxxxxxx -apinfo 35925
db2pd -db xxxxxxx -apinfo 35917
但是隻能看到request的app的sql詳細資訊,那個lock holder的看不到了
可以使用其他的db2pd來看lock holder的sql
db2pd -applications檢視Anch的資訊
$ db2pd -db TXDB -applications 35925
Address AppHandl [nod-index] NumAgents CoorEDUID Status C-AnchID C-StmtUID L-AnchID L-StmtUID Appid WorkloadID WorkloadOccID CollectActData CollectActPartition CollectSectionActuals
0x0780000003170080 35925 [000-35925] 1 16914 Lock-wait 493 1 0 0 *LOCAL.db2inst1.151118081726 1 192 N C N
$ db2pd -db TXDB -applications 35917
Address AppHandl [nod-index] NumAgents CoorEDUID Status C-AnchID C-StmtUID L-AnchID L-StmtUID Appid WorkloadID WorkloadOccID CollectActData CollectActPartition CollectSectionActuals
0x0780000003160080 35917 [000-35917] 1 12037 UOW-Waiting 0 0 41 1 *LOCAL.db2inst1.151118081634 1 191 N C N
根據獲取的anch的值,使用以下兩個db2pd命令獲取執行的sql資訊
db2pd -db TXDB -dynamic anch=493
db2pd -db TXDB -dynamic anch=41
第一步是檢視請求鎖和持有鎖的應用,透過執行一個SQL
SELECT req_application_handle,lock_name, hld_member, lock_status, hld_application_handle FROM TABLE (MON_GET_APPL_LOCKWAIT(NULL, -2))
輸出示例
REQ_APPLICATION_HANDLE LOCK_NAME HLD_MEMBER LOCK_STATUS HLD_APPLICATION_HANDLE
---------------------- -------------------------- ---------- ----------- ----------------------
35925 00020102000000000000000452 0 W 35917
想看兩個application的詳細資訊,可以使用db2pd命令看一下
db2pd -db xxxxxxx -apinfo 35925
db2pd -db xxxxxxx -apinfo 35917
但是隻能看到request的app的sql詳細資訊,那個lock holder的看不到了
可以使用其他的db2pd來看lock holder的sql
db2pd -applications檢視Anch的資訊
$ db2pd -db TXDB -applications 35925
Address AppHandl [nod-index] NumAgents CoorEDUID Status C-AnchID C-StmtUID L-AnchID L-StmtUID Appid WorkloadID WorkloadOccID CollectActData CollectActPartition CollectSectionActuals
0x0780000003170080 35925 [000-35925] 1 16914 Lock-wait 493 1 0 0 *LOCAL.db2inst1.151118081726 1 192 N C N
$ db2pd -db TXDB -applications 35917
Address AppHandl [nod-index] NumAgents CoorEDUID Status C-AnchID C-StmtUID L-AnchID L-StmtUID Appid WorkloadID WorkloadOccID CollectActData CollectActPartition CollectSectionActuals
0x0780000003160080 35917 [000-35917] 1 12037 UOW-Waiting 0 0 41 1 *LOCAL.db2inst1.151118081634 1 191 N C N
根據獲取的anch的值,使用以下兩個db2pd命令獲取執行的sql資訊
db2pd -db TXDB -dynamic anch=493
db2pd -db TXDB -dynamic anch=41
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/725820/viewspace-1847511/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視MySQL鎖等待的原因MySql
- mysql InnoDB鎖等待的檢視及分析MySql
- DB2 鎖表情況檢視DB2
- 檢視造成等待事件的具體SQL語句事件SQL
- 檢視處理Oracle中被鎖物件的SQLOracle物件SQL
- Oracle 等待事件V$檢視Oracle事件
- 檢視資料庫中的鎖(LOCK),找出程式及SQL資料庫SQL
- db2檢視錶大小DB2
- oracle檢視被鎖的表和解鎖Oracle
- db2死鎖監視器的使用(好用)DB2
- oracle 檢視鎖表和解鎖Oracle
- mysql鎖以及鎖資訊檢視MySql
- DB2檢視索引的使用情況DB2索引
- SQL檢視SQL
- 檢視oracle被鎖的表是誰鎖的Oracle
- DB2 snapshot 管理檢視DB2
- 檢視DB2表結構DB2
- 檢視SQLServer的LCK資源等待情況SQLServer
- RDSforMySQLInnoDB行鎖等待和鎖等待超時的處理ORMMySql
- sql server 檢視tempdb使用的相關檢視SQLServer
- db2常用動態效能檢視DB2
- db2檢視執行計劃DB2
- 檢視Oracle鎖並且釋放鎖Oracle
- sqlserver鎖表、解鎖、檢視銷表SQLServer
- DB2 V9新特性:可以檢視top sql了,類似oracleDB2SQLOracle
- 檢視MySQL鎖定情況MySql
- oracle檢視鎖表程式Oracle
- v$sql檢視和v$sqlarea檢視的構建SQL
- 檢視等待事件慢在哪個object上事件Object
- Oracle等待檢視v$session_waitOracleSessionAI
- MySQL 死鎖和鎖等待MySql
- 查出引起等待的sql,並kill該引起等待的sqlSQL
- 檢視鎖定的session資訊指令碼Session指令碼
- oracle死鎖的檢視及kill方法Oracle
- Oracle檢視被鎖物件及解鎖方法Oracle物件
- 檢視正在執行的SQLSQL
- 檢視SQL PROFILE使用的HINTSQL
- 檢視低效的SQL語句SQL