日期:2014-05-17  浏览次数:20867 次

oracle行锁问题请求oracle高手帮助
遇见的问题:
     应用环境:web程序发布到两台计算机上,连接同一个数据库,现在遇到的问题是:
     数据库中的一张表出现行锁,意思是:table_hsb(id,txt);对id为2的进行update,insert,delete操作时,后台不报错,但是数据库也没有修改,sql语句会锁住,用查询死锁的sql能查询出来。但是对id不为2的行操作时,是没有问题的。
     处理:把锁杀掉后,还是不能对id为2的数据进行操作,只要操作就会产生锁(ddl操作)。其中一台web服务器重启过,但没有解决掉问题。
      只是猜测和行锁有关,不知道这种锁的机制是什么?是如何操作产生的?在何种情况产生。求个大神指教。坐等回复
Oracle 数据库 Web

------解决方案--------------------
你能从某张表查出来的锁都不是行级锁!
行级锁不是Oracle一般意义上的锁、虽然有锁的功能,但是没有锁的开销
在Oracle的每行数据上,都有一个标志位来表示该行数据是否被锁定,要查看某一行是否被锁定,必须直接找到这一行:dump 一个数据块、你会发现有个 Lck 字段、Lck字段就是行级锁的表示:1加锁,0不加锁

你确认是否存在等待事件?