我试图在包含10,000行的表上执行以下语句,但查询正在永久执行。
从Table_A中删除col1 in('A','B','C')和col2 in('K','L','M')和col3 in('H','R', d')
请任何人协助!
由于 甲
答案 0 :(得分:1)
看起来好像另一个会话锁定了您要删除的行之一。
是否有其他人在同一张桌子上工作(交易持续时间超过几秒钟)?或者,如果您没有提交更改,是否还有另一个工具或会话?
<强>更新强>:
另一个问题是没有正确索引的外键:如果其他表具有要删除行的表的外键,并且这些表中的外键列未编入索引,则Oracle将试着锁定那些表。这可能是原因。如果是这种情况,请索引这些列。
答案 1 :(得分:1)
数据库挂起的另一个可能原因是存档日志目标已满。 查询V $ SESSION_WAIT和V $ SESSION_EVENT视图以查看您的会话正在等待的内容。