如何查看当前ORACLE数据库里面锁的情况 (数据库记录锁 oracle)

用如下语句查询锁死的表:

select p.spid,

a.serial#,

c.object_name,

b.session_id,

b.oracle_username,

b.os_user_name

from v$process p, v$session a, v$locked_object b, all_objects c

where p.addr = a.paddr

and a.process = b.process

and c.object_id = b.object_id;

其中object_name就是被锁的表名,如图:

相关问题拓展阅读:

oracle经常死锁,锁定数据库的一些表,导致oracle死锁的原因一般有那些?

一般情况只发生锁超时,就是一个进程需要访问数据库表或者字段的时候,另外一个程序正在执行带锁的访没尘问(比如修改数据),那么这个进程就会等待,当等了很久锁还没有解除的话就会锁超时,报告一个系统错误,拒绝执行相应的SQL操作。发生死锁的情况比较少,比如一个段掘进程需要访问两个资源(数据库表或者字段),当获取一个资源的时候进程就对它执行锁定,然后等待下一个资源空闲,这时候如果另外一个进程也需要两个资源,而已经获得并锁定了第二个资源,那么就会死锁,因为当前进程锁定之一个资源等待第二个资源,而另外一个握察核进程锁定了第二个资源等待之一个资源,两个进程都永远得不到满足。

erp100.com

关于数据库记录锁 oracle的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何查看当前ORACLE数据库里面锁的情况 (数据库记录锁 oracle)