Menu Explicit/Hidden

oracle查看锁表的sql

以下是Oracle查看锁表的SQL语句:

SELECT 
    a.session_id, 
    a.oracle_username, 
    a.os_user_name, 
    b.object_name, 
    b.object_type, 
    a.locked_mode, 
    a.blocking_session, 
    a.seconds_in_wait 
FROM 
    v$locked_object a, 
    dba_objects b 
WHERE 
    a.object_id = b.object_id;

该SQL语句将返回当前被锁定的对象、锁定模式、持有锁的会话ID、持有锁的Oracle用户名、持有锁的操作系统用户名、阻塞会话ID和等待时间(以秒为单位)。

此外,还可以使用以下SQL语句查看当前所有的锁定会话:

SELECT 
    s.sid, 
    s.serial#, 
    s.username, 
    s.osuser, 
    l.type, 
    l.mode_held, 
    l.mode_requested, 
    o.object_name, 
    o.object_type 
FROM 
    v$session s, 
    v$lock l, 
    dba_objects o 
WHERE 
    s.sid = l.sid 
    AND l.id1 = o.object_id;

该SQL语句将返回当前所有的锁定会话,包括会话ID、序列号、用户名、操作系统用户名、锁定类型、持有锁的模式、请求锁的模式、锁定的对象名称和类型。