-------------oracle中查詢阻塞與被阻塞sid的方法:----------------
查詢阻塞與被阻塞的方法主要有下面幾種:
一.通過查詢v$lock和v$locked_object
這是最常用的也是最直接的方法
sql> select sid,block from v$lock where block=1;
sid block
---------- ----------
252 1
sql>
sql> select object_id,session_id from v$locked_object where object_id in (select object_id from v$locked_object where session_id=252);
object_id session_id
---------- ----------
63833 252
63833 269
sql>
由上面第一條語句可以看出,sid=252的session阻塞了其他的session
由第二條語句可以得出,sid=252的session阻塞了sid=269的session
二.通過查詢dba_waiters和dba_blockers
sql> select * from dba_blockers;
holding_session
---------------
252sql>
sql>
sql> select waiting_session,holding_session from dba_waiters;
waiting_session holding_session
--------------- ---------------
269 252
從dba_blockers檢視中,可以看到,sid=252的session阻塞了別的session,而從dba_waiters可以看到,holding_session為252,等待的waiting_session為269.
三.在oracle 10g中可以通過v$session中的blocking_session欄位查詢
sql> select sid,blocking_session from v$session where blocking_session is not null;
sid blocking_session
---------- ----------------
269 252
ORACLE關於鎖表查詢的部分SQL
查詢表空間名稱和大小 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total ...
ORACLE關於鎖表查詢的部分SQL
查詢表空間名稱和大小 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total ...
處理鎖 阻塞和死鎖(2) 偵測阻塞和阻塞查詢
如果乙個事務正在等待一些給其他事務鎖定的資源。這個事務就被成為 被阻塞的事務 反過來,引起阻塞的事務,也就是鎖定資源並造成其他事務等待的事務叫做 正在阻塞的事務 長時間執行事務會阻塞其他事務和查詢,使他們等待長時間。在繁重的系統中,很多時候我們會遇到阻塞問題,如果乙個事務因為阻塞未完成。會造成一些列...