什么使插入到select sql语句非常缓慢(没有结果集返回)

时间:2013-06-06 09:27:18

标签: sql oracle

在sql语句下面执行得非常慢,env:oracle 9.请告知调试原因或提示。非常感谢。

INSERT INTO tmp_table (col1,col2,col3,col4,col5,col6,col7,col8,col9)
select * from my_view where col1 = 1;

我测试了多远:执行select子语句花费3秒以获得在无限执行时返回的1条记录但在执行整个语句时没有返回结果集,例如挂起。

1 个答案:

答案 0 :(得分:0)

当一个查询似乎快速执行时,从某种意义上说,最后一行是快速返回而不是仅仅是第一行,但是当它在insert语句中使用时运行缓慢,通常的嫌疑人是:

  1. 执行计划的变化,由优化者推动,认为all_rows目标现在适用于先前使用first_rows目标的情况。检查执行计划是否有变化。
  2. 由于插入而执行的某些操作。目标表上的慢速触发器或物化视图记录是可能的原因。运行“create table ... as select ..”时不会出现这种情况。