存储过程中,一张表需要不断更新内容,因此频繁删除表数据,插入新数据。然后,根据新数据计算。
....
for c in ind01
loop
  TD := c.td;  IF TableExists('temp_02')=1 THEN
  execute immediate 'delete from temp_02';
  END IF;  execute immediate 'insert into temp_02
  select td1,td2,td3,td4,td5,td6,td7,td8,td9,td10,
  sum(td10) over (partition by td2 order by td1) as td11
  from temp_01 where To_Char(td1,''yyyymmdd'')<='||To_Char(TD,'yyyymmdd');
...
end loop;每次循环1500次左右,运行需要将近200s。
外层还有一个将近3000次的循环,求教,通过什么方法可以提高运行速度。