oracle查看進程是否被鎖

有五種方法可以檢查 oracle 進程是否被鎖:使用 v$Session 和 v$session_wait,查找包含“lock”的等待事件。使用 v$lock 找到當前持有鎖的會話。使用 gv$lock 查找所有數據庫范圍的鎖。使用 v$locked_object 查找當前被鎖定的數據庫對象。使用 v$transaction 找到正在等待鎖定的所有事務。

oracle查看進程是否被鎖

如何查看 Oracle 進程是否被鎖?

方法 1:使用 v$session 和 v$session_wait

SELECT   s.sid,   s.serial#,   s.status,   sw.event,   sw.wait_time FROM v$session s INNER JOIN v$session_wait sw   ON s.sid = sw.sid WHERE   sw.event LIKE '%lock%';

此查詢返回所有被鎖定的會話及其等待事件和等待時間。

方法 2:使用 v$lock

SELECT   * FROM v$lock WHERE   request > 0;

此查詢返回所有當前持有鎖的會話。

方法 3:使用 gv$lock

SELECT   * FROM gv$lock WHERE   request > 0;

此查詢類似于 v$lock,但它顯示所有數據庫范圍的鎖。

方法 4:使用 v$locked_object

SELECT   * FROM v$locked_object WHERE   object_id > 0;

此查詢返回當前被鎖定的數據庫對象。

方法 5:使用 v$transaction

SELECT   * FROM v$transaction WHERE   status = 'WAIT WAIT';

此查詢返回正在等待鎖定的所有事務。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享