oracle查询block会话,oracle会话阻塞查询脚本及对应字段含义
时间: 2023-08-09 12:12:24 浏览: 99
oracle RAC查看blocking的脚本
4星 · 用户满意度95%
查询Oracle会话阻塞情况可以使用以下脚本:
```
SELECT s1.SID || ',' || s1.SERIAL# AS blocker, s2.SID || ',' || s2.SERIAL# AS waiter, l.TYPE, l.ID1, l.ID2, l.CTIME
FROM V$LOCK l, V$SESSION s1, V$SESSION s2
WHERE s1.SID = l.SID AND s2.SID = l.BLOCKING_SESSION AND l.TYPE = 'TM'
ORDER BY l.CTIME;
```
该脚本会返回阻塞会话的SID和SERIAL#,以及被阻塞的会话的SID和SERIAL#,锁的类型(如TM表示事务锁),以及锁的对象ID1和ID2,以及锁的创建时间。
其中,SID和SERIAL#是会话的标识符,ID1和ID2是锁的对象ID(通常是表或索引的ID)。CTIME是锁的创建时间。
另外,如果想要查询某个会话的信息,可以使用以下脚本:
```
SELECT s.sid, s.serial#, s.username, s.osuser, s.machine, s.program, s.sql_id, s.sql_child_number, s.status
FROM v$session s
WHERE s.sid = <sid>;
```
该脚本会返回指定会话的SID、SERIAL#、用户名、操作系统用户、客户端机器名、客户端程序名、当前执行的SQL语句ID和子程序ID、以及会话状态。
阅读全文