-- 锁表查询的
select count(*) from v$locked_object;
select * from v$locked_object;
-- 查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
-- 查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
-- 查看是哪个sql引起的
select b.username,b.sid,b.serial#,c.* from v$locked_object a,v$session b,v$sql c where a.session_id = b.sid
and b.SQL_ID = c.sql_id and c.sql_id = ''
order by b.logon_time;
-- 杀掉对应进程,执行命令:其中1025为sid,41为serial#.
alter system kill session'288,19930';
判断Oracle数据库是否存在死锁
最新推荐文章于 2025-10-03 10:08:39 发布
本文介绍了如何查询数据库中的锁定对象,包括查看所有锁定、锁定的表、引起锁定的会话以及具体的SQL语句。同时,提供了杀死特定会话以解除锁定的SQL命令,帮助数据库管理员进行问题排查和性能优化。
1万+

被折叠的 条评论
为什么被折叠?



