Oracle数据库快速定位锁表原因存储过程怎么写?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1438个文字,预计阅读时间需要6分钟。
相关专题内容如下:
查 v$locked_object 确认哪些表真被锁了
别一上来就杀会话,先看是不是真锁了。直接查 v$locked_object 最快,它只返回当前正持有 dml 锁的对象(比如 insert/update/delete 未提交导致的行级锁升级或阻塞)。注意这个视图不包含 select for update 的轻量锁,也不反映 ddl 锁(如 alter table),所以看到空结果 ≠ 没锁。
常用组合查询:
SELECT b.owner, b.object_name, a.session_id, a.locked_mode FROM v$locked_object a, dba_objects b WHERE a.object_id = b.object_id;
如果 object_name 是你关心的表名,说明它正在被某个 SID 占着;locked_mode 值为 3(Row-X)或 6(Exclusive)通常意味着写操作没提交。
本文共计1438个文字,预计阅读时间需要6分钟。
相关专题内容如下:
查 v$locked_object 确认哪些表真被锁了
别一上来就杀会话,先看是不是真锁了。直接查 v$locked_object 最快,它只返回当前正持有 dml 锁的对象(比如 insert/update/delete 未提交导致的行级锁升级或阻塞)。注意这个视图不包含 select for update 的轻量锁,也不反映 ddl 锁(如 alter table),所以看到空结果 ≠ 没锁。
常用组合查询:
SELECT b.owner, b.object_name, a.session_id, a.locked_mode FROM v$locked_object a, dba_objects b WHERE a.object_id = b.object_id;
如果 object_name 是你关心的表名,说明它正在被某个 SID 占着;locked_mode 值为 3(Row-X)或 6(Exclusive)通常意味着写操作没提交。

