oracle 鎖 關於查詢阻塞源的方法

2021-09-25 16:23:58 字數 1298 閱讀 6386

-------------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) 偵測阻塞和阻塞查詢

如果乙個事務正在等待一些給其他事務鎖定的資源。這個事務就被成為 被阻塞的事務 反過來,引起阻塞的事務,也就是鎖定資源並造成其他事務等待的事務叫做 正在阻塞的事務 長時間執行事務會阻塞其他事務和查詢,使他們等待長時間。在繁重的系統中,很多時候我們會遇到阻塞問題,如果乙個事務因為阻塞未完成。會造成一些列...