ORACLE鎖表查詢

2021-08-20 13:35:57 字數 1992 閱讀 9108

select /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name,

o.owner,o.object_name,o.object_type,s.sid,s.serial#

from v$locked_object l,dba_objects o,v$session s

where l.object_id=o.object_id

and l.session_id=s.sid

order by o.object_id,xidusn desc

//如果發生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待

以上的語句可以查詢到誰鎖了表,而誰在等待。

以上查詢結果是乙個樹狀結構,如果有子節點,則表示有等待發生。

如果想知道鎖用了哪個回滾段,還可以關聯到v$rollname,其中xidusn就是回滾段的usn

找出誰鎖定的記錄,kill掉就行了。

alter system kill session '133,3506' ;

--kill session語句

alter system kill session'50,492';

--以下幾個為相關表

select * from v$lock;

select * from v$sqlarea;

select * from v$session;

select * from v$process ;      

select * from v$locked_object;  

select * from all_objects;  

select * from v$session_wait;

--1.查出鎖定object的session的資訊以及被鎖定的object名

select l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,

l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time

from v$locked_object l, all_objects o, v$session s

where l.object_id = o.object_id

and l.session_id = s.sid

order by sid, s.serial# ;

--2.查出鎖定表的session的sid, serial#,os_user_name, machine name, terminal和執行的語句

--比上面那段多出sql_text和action

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#;

--3.查出鎖定表的sid, serial#,os_user_name, machine_name, terminal,鎖的type,mode

select s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,

s.terminal, s.logon_time, l.type

from v$session s, v$lock l

where s.sid = l.sid

and s.username is not null

order by sid;

Oracle 鎖表 鎖表查詢 結束鎖表程序

1.oracle 鎖表 lock table 表名字in exclusive mode 所記錄 select from 表名字 for update 2.oracle 鎖表查詢 selectb.owner,b.object name,a.session id,a.locked mode from v...

Oracle鎖表及鎖表使用者查詢

可在pl sql中用如下sql語句來查詢當前資料庫中哪些表被鎖住了,並且是哪些使用者來鎖的這些表 select a.owner,object所屬使用者 a.object name,object名稱 表名 b.xidusn,b.xidslot,b.xidsqn,b.session id,鎖表使用者的s...

Oracle鎖表及鎖表使用者查詢

可在pl sql中用如下sql語句來查詢當前資料庫中哪些表被鎖住了,並且是哪些使用者來鎖的這些表 select a.owner,object所屬使用者 a.object name,object名稱 表名 b.xidusn,b.xidslot,b.xidsqn,b.session id,鎖表使用者的s...