Oracle阻塞(鎖等待)查詢
Oracle阻塞(鎖等待)查詢
主要查詢v$lock、v$session檢視。
v$lock中的id1,id2為鎖定的物件標識,block為阻塞數目。指令碼show_blocker.sql相關程式碼如下:
v$lock中的id1,id2為鎖定的物件標識,block為阻塞數目。指令碼show_blocker.sql相關程式碼如下:
col block_msg for a80
select c.terminal||' ('''||a.sid||','||c.serial#||''') is blocking '||b.sid block_msg
from v$lock a,v$lock b,v$session c
where a.id1=b.id1
and a.id2=b.id2
and a.block>0
and a.sid<>b.sid
and a.sid=c.sid
;
from v$lock a,v$lock b,v$session c
where a.id1=b.id1
and a.id2=b.id2
and a.block>0
and a.sid<>b.sid
and a.sid=c.sid
;
模擬場景:開3個session,
session1做更新,不提交。
session2做相同行的更新,將會被阻塞。
session3執行指令碼觀察結果。
session1:
cwgl94>select * from t where a=1;
A NAME ADDRESS
---------- ---------- --------------------
1 chennan
---------- ---------- --------------------
1 chennan
已選擇 1 行。
cwgl94>update t set address='my address' where a=1;
已更新 1 行。
cwgl94>select * from t where a=1;
A NAME ADDRESS
---------- ---------- --------------------
1 chennan my address
---------- ---------- --------------------
1 chennan my address
已選擇 1 行。
session2:
cwgl94>select * from t where a=1;
A NAME ADDRESS
---------- ---------- --------------------
1 chennan
---------- ---------- --------------------
1 chennan
已選擇 1 行。
cwgl94>update t set address='test' where a=1;
[ 一直阻塞 ...]
[ 一直阻塞 ...]
session3:
cwgl94>select sid,serial#,terminal from v$session;
SID SERIAL# TERMINAL
---------- ---------- ----------------
1 1 CHENNAN
2 1 CHENNAN
3 1 CHENNAN
4 1 CHENNAN
5 1 CHENNAN
6 1 CHENNAN
7 1 CHENNAN
8 1 CHENNAN
9 204 CHENNAN
10 2590 CHENNAN
11 1480 CHENNAN
---------- ---------- ----------------
1 1 CHENNAN
2 1 CHENNAN
3 1 CHENNAN
4 1 CHENNAN
5 1 CHENNAN
6 1 CHENNAN
7 1 CHENNAN
8 1 CHENNAN
9 204 CHENNAN
10 2590 CHENNAN
11 1480 CHENNAN
已選擇11行。
BLOCK_MSG
-----------------------------------------------------------
CHENNAN ('11,1480') is blocking 10
-----------------------------------------------------------
CHENNAN ('11,1480') is blocking 10
已選擇 1 行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24558279/viewspace-752691/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢並刪除Oracle中等待的鎖Oracle
- 查詢鎖等待情況
- oracle session阻塞查詢OracleSession
- Oracle10g中阻塞鎖查詢更簡單Oracle
- Oracle阻塞會話查詢Oracle會話
- RAC環境中的阻塞 查詢鎖
- oracle 查詢鎖 && 解鎖Oracle
- Oracle查詢鎖、解鎖Oracle
- 一條查詢Oracle中的阻塞鎖(以及阻塞在哪個資料上)的SQLOracleSQL
- oracle 鎖資訊查詢
- Oracle中查詢阻塞與被阻塞SID的方法Oracle
- oracle 查詢殺死死鎖方案Oracle
- oracle 死鎖查詢處理Oracle
- oracle鎖阻塞的分析Oracle
- mysql鎖等待查詢分析MySql
- 查詢阻塞與被阻塞SQL語句SQL
- 查詢等待的sessionSession
- 查詢並解除oracle的死鎖Oracle
- Oracle死鎖查詢及處理Oracle
- MySQL查詢阻塞語句MySql
- [Q]怎麼快速查詢鎖與鎖等待
- 查殺oracle的阻塞Oracle
- SQL Server阻塞查詢語句SQLServer
- 查詢引起Oracle阻塞事件的源頭語句的方法Oracle事件
- innodb查詢鎖
- TX鎖查詢
- SQLServer DML操作阻塞SELECT查詢SQLServer
- row lock contention 阻塞程式查詢
- library cache lock 阻塞程式查詢
- library cache pin 阻塞程式查詢
- ORACLE鎖等待的處理方法Oracle
- mysql鎖表查詢MySql
- 查詢鎖的原因
- Oracle 查詢鎖之間的依賴關係Oracle
- 查詢 Oracle 使用者鎖的DLL SQL(轉)OracleSQL
- ORACLE SQL的查詢表的鎖的情況OracleSQL
- package鎖的查詢與解鎖Package
- [鎖機制] 鎖相關查詢