oracle 11g中的查询错误

时间:2011-08-22 14:39:52

标签: performance oracle oracle11g query-tuning

当我在oracle 11g SQL * Plus中执行此查询时,我的会话暂停:

SQL> 
 declare maxid number;

 begin

  delete from  measure_details
 where id in (select id from general_measures  where code in ('12345','12346'));

 delete from general_measures
 where code in (select code from general_measures  where code in ('12345','12346'));

 end;
 /

2 个答案:

答案 0 :(得分:2)

如果它“挂起”那么这可能意味着您尝试删除的一行或多行被另一个会话中的未提交事务锁定 - 甚至可能是您自己的另一个会话?

答案 1 :(得分:1)

如果您在这种D​​ML中遇到死锁,我的第一个怀疑是非索引外键。看看Ask Tom的this文章。 如果是这样的话。您需要做的就是创建适当的索引。 但话说回来,也许你的桌子很大,需要一段时间才能完成。