Oracle锁表查询
程序员文章站
2022-06-02 11:48:59
...
查询锁表SQL
--
SELECT SESS.SID, --sessionId
SESS.SERIAL#, --同一session中SERIAL#不会相同
LO.ORACLE_USERNAME, --对象拥有者
LO.OS_USER_NAME,--操作系统的用户名
AO.OBJECT_NAME,--对象名称
LO.LOCKED_MODE--锁的模式
FROM V$LOCKED_OBJECT LO, DBA_OBJECTS AO, V$SESSION SESS, V$PROCESS P
WHERE AO.OBJECT_ID = LO.OBJECT_ID
AND LO.SESSION_ID = SESS.SID;
--sid 会重用,但是同一个SID被重用时,serial#会增加,不会重复
--sid 在同一个instance的当前session中是一个unique key, 而sid ,serial#则是在整个instance生命期内的所有session中是unique key。
杀掉session
--方式一:
alter system kill session '575,24071';
--方式二:
DECLARE
CURSOR MYCUR IS
SELECT B.SID, B.SERIAL#
FROM V$LOCKED_OBJECT A, V$SESSION B
WHERE A.SESSION_ID = B.SID
GROUP BY B.SID, B.SERIAL#;
BEGIN
FOR CUR IN MYCUR
LOOP
EXECUTE IMMEDIATE ('alter system kill session ''' || CUR.SID || ',' ||
CUR.SERIAL# || ''' ');
END LOOP;
上一篇: Oracle 左外连接的一些测试
下一篇: PHPer请手动释放你的资源