關於鎖的快速定位
當我們在執行某個update,或delete的時候,釋出自己的SQL等在那裡,如何更快速地定位到問題源?
[@more@]--------檢視哪些物件被鎖了!
select t2.username,
t2.sid,
t2.serial#,
t3.object_name,
t2.OSUSER,
t2.MACHINE,
t2.PROGRAM
from v$locked_object t1, v$session t2, dba_objects t3
where t1.session_id = t2.sid
and t1.object_id = t3.object_id
order by t2.logon_time;
--------察看錶鎖(可以檢視什麼型別的鎖)
select /*+ rule */
s.sid sid,s.username username,s.machine machine,
l.type type,o.object_name object_name,
DECODE(l.lmode,
0,'None',
1,'Null',
2,'Row Share',
3,'Row Exlusive',
4,'Share',
5,'Sh/Row Exlusive',
6,'Exclusive') lmode,
DECODE(l.request,
0,'None',
1,'Null',
2,'Row Share',
3,'Row Exlusive',
4,'Share',
5,'Sh/Row Exlusive',
6,'Exclusive') request, l.block block
from v$lock l,v$session s, dba_objects o
where l.sid = s.sid and username != 'SYSTEM' and o.object_id(+) = l.id1;
------由於上面的語句很多,又比較難記。
其實當有等等的情況發生的時候,我們可以用以上檢視來檢視:
有誰在等待?
在等等哪個SESSION?
select * from dba_blockers;
--HOLDING_SESSION就是SESSION_ID
select * from dba_waiters;
--HOLDING_SESSION就是被等待的SESSION_ID
--WAITING_SESSION就是等待的SESSION_ID
從上面兩種方法,其實我們已經能基本定位哪個SESSION鎖了表。
下面來看一下,那個SESSION到底在執行哪些SQL?
SELECT /*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN
(SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.sid = &SID_ID)
ORDER BY piece ASC
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/703656/viewspace-1004462/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【原】關於SQLServer死鎖的診斷和定位SQLServer
- 關於ORACLE鎖的總結Oracle
- 關於oracle的行級鎖Oracle
- 關於position定位的一些理解
- 關於innodb中查詢的定位方法
- 關於ORACLE的鎖表與解鎖總結Oracle
- 關於oracle死鎖的模擬Oracle
- 關於 TX 鎖的兩句sqlSQL
- 關於小楊的個人部落格定位
- RAC 鎖管理與鎖問題的定位(二)
- RAC 鎖管理與鎖問題的定位(一)
- 關於synchronized,“鎖住了誰”synchronized
- 關於資料庫鎖的總結資料庫
- 關於頁面中彈窗的定位問題
- Hbuilder打包IOS關於定位描述問題UIiOS
- 關於樂觀鎖與悲觀鎖的實際應用
- 如何快速鎖定 Mac,Macbook快速鎖定的幾種方法Mac
- CSS中關於定位及BFC中的易錯點CSS
- 關於衛星定位,你想知道的一切
- MySql關於鎖的一些總結MySql
- 關於rac中的鎖簡單學習
- 一個關於wait/notify與鎖關係的探究AI
- 快速定位 Redis 熱 key?Redis
- 關於Oracle死鎖處理方法Oracle
- 快速定位抓取系統繁忙的AWR
- 關於iframe中使用fixed定位的一些問題
- 解鎖1688關鍵字搜尋API介面:從海量商品中快速定位,開啟商業智慧新篇章API
- 關於生產系統鎖問題的排查
- golang中關於死鎖的思考與學習Golang
- 關於synchronized的理解,共有兩種型別的鎖:synchronized型別
- 關於 ReentrantLock 中鎖 lock() 和解鎖 unlock() 的底層原理淺析ReentrantLock
- 關於halcon基於表面的3d識別定位3D
- 如何快速定位 Redis 熱 key?Redis
- 快速定位挖礦木馬 !
- 等待事件快速定位診斷事件
- 關於鎖的幾個動態檢視的總結
- Linux下關於互斥鎖及同步的移植(一)Linux
- Linux下關於互斥鎖及同步的移植(二)Linux