Oracle IN Condition非常慢

时间:2010-10-04 09:04:56

标签: oracle

我试图在包含10,000行的表上执行以下语句,但查询正在永久执行。

从Table_A中删除col1 in('A','B','C')和col2 in('K','L','M')和col3 in('H','R', d')

请任何人协助!

由于 甲

2 个答案:

答案 0 :(得分:1)

看起来好像另一个会话锁定了您要删除的行之一。

是否有其他人在同一张桌子上工作(交易持续时间超过几秒钟)?或者,如果您没有提交更改,是否还有另一个工具或会话?

<强>更新

另一个问题是没有正确索引的外键:如果其他表具有要删除行的表的外键,并且这些表中的外键列未编入索引,则Oracle将试着锁定那些表。这可能是原因。如果是这种情况,请索引这些列。

答案 1 :(得分:1)

数据库挂起的另一个可能原因是存档日志目标已满。 查询V $ SESSION_WAIT和V $ SESSION_EVENT视图以查看您的会话正在等待的内容。