查看Oracle中的SQL中是否有锁表
1,看看是否有SQL锁表复制代码代码如下所示:
select'blocker(' | | lb.sid | | ':' | |某人的用户名| | ')- SQL:| | qb.sql_text阻滞剂,
服务员(| | LW。希德| | ':' | | SW。用户名| | ')- SQL:| | qw.sql_text服务员
从V $锁定磅,
V $锁LW,
某人参加会议,
会话$ SW,
V$SQL QB,
V$SQL QW
在lb.sid = sb.sid
SID = sw.sid和LW。
和某人prev_sql_addr = qb.address
sql_address = qw.address和西南部。
和lb.id1 = lw.id1
和sw.lockwait不空
和sb.lockwait是空的
和lb.block = 1;
2。检查锁定的表
复制代码代码如下所示:
选择p.spid,a.serial #,c.object_name,b.session_id,b.oracle_username,b.os_user_name
从五美元过程中P、V $ SESSION,V locked_object美元all_objects B,C
在p.addr = a.paddr和允许在宿主进程中= b.process和c.object_id = b.object_id;
三.查看导致死锁、锁定级别的用户级别。
复制代码代码如下所示:
选择b.owner,b.object_name,l.session_id,l.locked_mode 0020 locked_object美元,dba_objects
4。看连接的过程
复制代码代码如下所示:
选择SID,串行#,用户名,osuser FROMv $ SESSION;
5。看哪个会话是原因
复制代码代码如下所示:
选择b.username,B.sid,b.serial #,logon_time
locked_object美元从V,V $ SESSION B
在a.session_id = b.sid顺序b.logon_time;
6,扼杀这个过程
复制代码代码如下所示:
改变系统杀死session'sid,串行#;
Sid是Sid和串行查询第五步