From 1e45f4c428f9f0db566b6025948b0aa3d9a2c098 Mon Sep 17 00:00:00 2001 From: iProbe Date: Wed, 19 Oct 2022 19:06:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20'=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93/oracle/oracle=E9=94=81=E8=A1=A8=E9=97=AE=E9=A2=98.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 数据库/oracle/oracle锁表问题.md | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/数据库/oracle/oracle锁表问题.md b/数据库/oracle/oracle锁表问题.md index 29b0fa8..790fb2b 100644 --- a/数据库/oracle/oracle锁表问题.md +++ b/数据库/oracle/oracle锁表问题.md @@ -9,4 +9,41 @@ select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b ## 结束产生锁表的会话 ``` alter system kill session 'SID,SERIAL#'; +``` +## 查询导致锁表的sql +``` +SELECT + A.USERNAME, + A.MACHINE, + A.PROGRAM, + A.SID, + A.SERIAL#, + A.STATUS, + C.PIECE, + C.SQL_TEXT +FROM + V$SESSION A, + V$SQLTEXT C +WHERE + A.SID IN ( SELECT DISTINCT T2.SID FROM V$LOCKED_OBJECT T1, V$SESSION T2 WHERE T1.SESSION_ID = T2.SID ) + AND A.SQL_ADDRESS = C.ADDRESS ( + ) +ORDER BY + C.PIECE; +``` +## 查询导致锁表的sql语句 +``` +select l.session_id sid, + s.serial#, + l.locked_mode, + l.oracle_username, + s.user#, + l.os_user_name, + s.machine, + s.terminal, + a.sql_text, + a.action +from v$sqlarea a, v$session s, v$locked_object l +where l.session_id = s.sid +and s.prev_sql_addr = a.address +order by sid, s.serial#; ``` \ No newline at end of file