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

oralce 表被锁住了。程序执行insert语句挂起了一直等待。
javaWeb开发。
客户打电话说不能新增数据了。我打开 pl/sql develop 工具 登录
点击tools ->>sessions 打开发现很多会话是ative的。
我点击在下面的显示有 update 表的操作。
但是update语句显示不完整。不知道程序在执行什么东西哦
update 操作会导致整个表被锁住吗?查询是没有问题。就是程序不能insert记录。

有没有大侠指点一下。这个问题怎么解决。是代码的问题吗?


------解决方案--------------------
探讨
javaWeb开发。
客户打电话说不能新增数据了。我打开 pl/sql develop 工具 登录
点击tools ->>sessions 打开发现很多会话是ative的。
我点击在下面的显示有 update 表的操作。
但是update语句显示不完整。不知道程序在执行什么东西哦
update 操作会导致整个表被锁住吗?查询是没有问题。就是程序不能insert记录。

有没有大侠指点……

------解决方案--------------------
程序有问题,应该是主外建的问题,比如更新了主键,没提交事务,之后子表用更新前的主键做插入记录就会出现这种情况。
------解决方案--------------------
探讨
程序有问题,应该是主外建的问题,比如更新了主键,没提交事务,之后子表用更新前的主键做插入记录就会出现这种情况。

------解决方案--------------------
你检查一下你插入的表上是不是有bitmap 索引, 有的话删掉,这种问题一般都是位图索引引起的。

因为位图索引的维护成本很高,insert执行不动得原因是oracle正在维护新插入数据的索引,表被锁定中。