Oracle 查詢鎖之間的依賴關係
註釋:
該SQL可查詢多會話,非select的DML操作,同時操作A表引起的鎖 ..會話之間的關係~
....下文有該SQL用到的檢視/欄位的詳細註釋..
....若想顯示其他欄位可以按照自己需求增加 ..
SQL:
SELECT DISTINCT S.SID , /*會話的唯一標識,通常要對某個會話進行分析前,首先就需要獲得該會話的SID。*/
--S.SERIAL# /*會話的序號*/,
S.STATE /*WAIT STATE~*/ ,
S.BLOCKING_SESSION ,
--SESSION IDENTIFIER OF THE BLOCKING SESSION. THIS COLUMN IS VALID ONLY IF BLOCKING_SESSION_STATUS HAS THE VALUE VALID.
S.BLOCKING_SESSION_STATUS STATUS, /*THIS COLUMN PROVIDES DETAILS ON WHETHER THERE IS A BLOCKING SESSION: */
( CASE
WHEN SQL_TEXT IS NULL /*LO.REQUEST = 0 */
THEN
'(SID:' || S.SID || ')會話 SQL已跑完'
ELSE
'(SID:' || S.SID || ')會話 正執行SQL:' || SQL_.SQL_TEXT
END ) SQL_TEXT /*執行完的SQL'SQL_TEXT標記SQL已跑完,否則標記SQL'*/ ,
--SQL_.SQL_FULLTEXT SQL全文字,
S.USERNAME /*建立該會話的使用者名稱*/ ,
O.OWNER || '.' || O.OBJECT_NAME 鎖的物件, --V$SESSION.ROW_WAIT_OBJ#若操作完的該欄位值=-1,所以關聯的V$LOCKED_OBJECT取鎖表
LO.REQUEST , -- Lock mode in which the process requests the lock 會話申請的鎖的模式
S.EVENT ,
S.MACHINE /*客戶端的機器名。*/ ,
S.LOGON_TIME /*登陸時間*/ ,
'ALTER SYSTEM KILL SESSION ''' || S.SID || ',' || S.SERIAL# || ''';' KILL --若存在鎖情況,會用到KILL鎖釋放~
FROM V$SESSION S
LEFT JOIN V$SQL SQL_
ON SQL_.SQL_ID = S.SQL_ID
JOIN V$LOCKED_OBJECT L
ON L.SESSION_ID = S.SID
JOIN ALL_OBJECTS O
ON L.OBJECT_ID = O.OBJECT_ID
JOIN V$LOCK LO
ON (LO.BLOCK != 0 OR LO.REQUEST != 0 )
--V$LOCK.block => A value of either 0 or 1, depending on whether or not the lock in question is the blocker
--V$LOCK.REQUEST => Lock mode in which the process requests the lock:下文有值的意義~ ['0 - none']
WHERE LO.SID = L.SESSION_ID
AND LO.SID = S.SID
ORDER BY S.BLOCKING_SESSION DESC ;
|
註釋:
--檢視==官網註釋
--顯示欄位==官網註釋:
V$SESSION.STATE = Wait state :
V$SESSION.BLOCKING_SESSION_STATUS = This column provides details on whether there is a blocking session :
V$LOCK.REQUEST = Lock mode in which the process requests the lock :
|
祝好~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28389881/viewspace-1266644/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 查詢鎖之間依賴關係的最源頭SIDOracle
- MySQL 查詢鎖之間依賴關係的資訊和最源頭鎖的thread_id號及關係MySqlthread
- MySQL查詢鎖之間依賴關係的資訊和最源頭鎖的thread_id號及關係MySqlthread
- 查詢依賴關係的objects 是否有被DDL過Object
- .NET Core新增專案之間的依賴關係
- ORACLE查詢表之間的主外來鍵關係Oracle
- Oracle 查詢表與表之間的 主外來鍵關係Oracle
- Maven 依賴關係Maven
- build task依賴關係UI
- 關聯關係與依賴關係的區別
- Gradle的Task(2)任務間的依賴關係Gradle
- java的類之間的關係:泛化、依賴、關聯、實現、聚合、組合Java
- OSGI中的service依賴關係管理
- ORACLE包和過程依賴關係測試(轉)Oracle
- Oracle中查詢依賴的無效物件(invalid object)Oracle物件Object
- Spring框架模組依賴關係Spring框架
- mysql主外來鍵依賴關係MySql
- depmod解決模組依賴關係
- 如何在 SAP BTP 上建立 Module 之間具有依賴關係的 SAP MTA 應用
- 【物件導向依賴關係概念總結】物件導向程式設計的五種依賴關係物件程式設計
- Android專案的依賴關係解析Android
- 分析資料庫的依賴關係(轉)資料庫
- 【python】【安裝包依賴關係】Python
- 解決rpm包依賴關係
- 關於oracle的空間查詢Oracle
- 使用IDEA模組之間依賴找不到依賴類Idea
- oracle查詢並殺掉鎖表及物件的session及相關係統程式Oracle物件Session
- Elasticsearch依賴與Spring對應關係ElasticsearchSpring
- 使用 .NET Core 實現依賴關係注入
- Oracle查詢表的外來鍵引用關係Oracle
- 透過shell分析表依賴的層級關係
- maven中scope依賴範圍與classpath的關係Maven
- 通過shell分析表依賴的層級關係
- 使用yum 安裝依賴關係較多的包
- SQL如何實現查詢節點依賴SQL
- 透過遞迴查詢應用依賴遞迴
- Oracle 10G RAC中去除asm例項與vip的依賴關係Oracle 10gASM
- MongoDB之資料查詢(關係運算)MongoDB