0

在下面的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 条记录,但在执行整个语句时没有返回结果集,比如挂起。

4

1 回答 1

0

当查询看起来执行得很快时,从某种意义上说最后一行被快速返回,而不仅仅是第一行,但在插入语句中使用时它运行缓慢,通常的怀疑是:

  1. 执行计划的更改,由优化器驱动,认为 all_rows 目标现在适用于以前使用 first_rows 目标的位置。检查执行计划的更改。
  2. 由于插入而执行的某些操作。目标表上的缓慢触发器或物化视图日志记录是可能的原因。运行“create table ... as select ..”时不会出现这种情况。
于 2013-06-06T09:55:19.620 回答