查詢並刪除Oracle中等待的鎖
找到等待的鎖:
1.正在等待別人的使用者:
SELECT a.SID, a.serial#, a.machine, a.last_call_et, a.username, b.id1
FROM (SELECT a.username, a.SID, a.serial#, a.lockwait, a.machine, a.status,
a.last_call_et, a.sql_hash_value, a.program
FROM v$session a
WHERE NVL (a.username, 'NULL') < > 'NULL') a,
(SELECT id1, kaddr, SID, request, TYPE
FROM v$lock) b
WHERE a.lockwait = b.kaddr
2.被等待的使用者
[@more@]SELECT a.SID, a.serial#, a.machine, a.last_call_et, a.username, b.TYPE,
a.status, b.id1
FROM (SELECT a.username, a.SID, a.serial#, a.lockwait, a.machine, a.status,
a.last_call_et, a.sql_hash_value, a.program
FROM v$session a
WHERE NVL (a.username, 'NULL') < > 'NULL') a,
(SELECT id1, kaddr, SID, request, TYPE
FROM v$lock) b
WHERE b.id1 IN (
SELECT DISTINCT e.id1
FROM (SELECT a.username, a.SID, a.serial#, a.lockwait,
a.machine, a.status, a.last_call_et,
a.sql_hash_value, a.program
FROM v$session a
WHERE NVL (a.username, 'NULL') < > 'NULL') d,
(SELECT id1, kaddr, SID, request, TYPE
FROM v$lock) e
WHERE d.lockwait = e.kaddr)
AND a.SID = b.SID
AND b.request = 0
3.刪除等待鎖的方法:
首先執行指令碼"正在等待別人的使用者.sql" 和"被等待的使用者" 來查詢鎖等待程式
若發現該阻塞其它使用者程式的程式是正常操作中,則可通知該使用者對其進行提交, 從而達到釋放鎖資源的目的;若為未正常操作,即,其狀態為"inactive",且其last_call_et已為較多長時間,則可執行以下語句將該程式進行清除:
alter system kill session 'sid, serial#'
說明: alter語句後面是一個包含sid和serial#的串,
在真正刪除會話時,可以使用指令碼"被等待的使用者.sql"和"正在等待別人的使用者.sql"來得到想要刪除的sid和serial#組合
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7416120/viewspace-1004786/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle阻塞(鎖等待)查詢Oracle
- 查詢並解除oracle的死鎖Oracle
- oracle 中查詢被鎖的物件,並殺死死鎖程式的方法Oracle物件
- Oracle 查詢並刪除重複記錄的SQL語句OracleSQL
- 查詢鎖等待情況
- oracle 查詢及刪除表中重複資料Oracle
- oracle中查詢、禁用、啟用、刪除表外來鍵Oracle
- oracle重複資料的查詢及刪除Oracle
- mysql刪除查詢MySql
- 回閃查詢查詢刪除的資料
- oracle JOB 查詢 新增 修改 刪除 執行Oracle
- oracle 查詢鎖 && 解鎖Oracle
- Oracle查詢鎖、解鎖Oracle
- 查詢刪除表中重複記錄
- 二叉查詢樹的插入刪除查詢
- oracle 鎖資訊查詢
- 轉載:Oracle中查詢和刪除重複記錄方法簡介Oracle
- 刪除oracle表被鎖住Oracle
- Oracle閃回查詢恢復delete刪除資料Oracledelete
- flowable的查詢操作和刪除操作
- 查詢等待的sessionSession
- mysql 查詢及 刪除表中重複資料MySql
- 閃回刪除、閃回查詢
- 查詢已經刪除的procedure,view,functionViewFunction
- oracle表查詢的並行度Oracle並行
- oracle 查詢殺死死鎖方案Oracle
- oracle 死鎖查詢處理Oracle
- Oracle查詢重複資料與刪除重複記錄Oracle
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- mysql 跨表查詢、更新、刪除示例MySql
- mysql鎖等待查詢分析MySql
- GIS資料的查詢,插入,刪除,更新(ArcEngine)
- Oracle10g中阻塞鎖查詢更簡單Oracle
- RAC環境中的阻塞 查詢鎖
- 用查詢替換快速批次刪除Word中的回車符號符號
- Oracle並行操作——並行查詢(Parallel Query)Oracle並行Parallel
- Oracle死鎖查詢及處理Oracle
- Oracle查詢重複資料與刪除重複記錄方法Oracle