oracle用户频繁被锁是怎么了 oracle频繁锁表,怎么查出原因?
oracle频繁锁表,怎么查出原因?
使用下面的语句检查触发锁表的语句是否正在执行,找到正在执行的用户,然后与相应的用户通信,从v$sqlarea、v$session s、v$locked对象l where中选择l.session|id sid、s.serial|、l.locked|mode、l.oracle|username、s.user|、l.os|user|name、s.machine、s.terminal、a.sql|text、a.actionl、 session_id=s.sid和s.prev ql_uaddr=a.address order by sid,s.Serial#如果没有语句锁定表,则可能是相应的表正在执行DDL操作,例如添加索引,也可能触发锁定表。您可以转到警报日志查看是否有人正在添加索引
通常,只有锁定超时才会发生,即当一个进程需要访问数据库表或字段时,另一个程序正在执行锁定访问(如修改数据),则该进程将等待。如果在等待很长时间后没有释放锁,锁将超时,报告系统错误,并拒绝执行相应的SQL操作。僵局的情况很少。例如,一个进程需要访问两个资源(数据库表或字段)。在获取资源时,进程将其锁定,然后等待下一个资源空闲。此时,如果另一个进程也需要两个资源,并且已经获取并锁定了第二个资源,那么它将处于死锁状态,因为当前进程被锁定如果第一个资源被固定为等待第二个资源,而另一个进程将第二个资源锁定为等待第一个资源,那么这两个进程将永远不会得到满足。
erp100.com
oracle用户频繁被锁是怎么了 oracle什么情况下会锁表 oracle如何给表加锁
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。