存储过程中,一张表需要不断更新内容,因此频繁删除表数据,插入新数据。然后,根据新数据计算。
....
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次的循环,求教,通过什么方法可以提高运行速度。
....
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次的循环,求教,通过什么方法可以提高运行速度。
解决方案 »
- TNS-12502: TNS: 监听程序没有从客户机收到 CONNECT_DATA
- 一个简单的group by语句问题
- ORACLE触发器的影响
- 关于pl/sql中的group by的用法,怎样选取自己想要的记录??
- 100分求救,我把Oracle 的一个用户删除了,又导入了新的数据,如何恢复上次删除的用户的表结构啊!!!!!!!!!!!!!!????????
- .net调用oracle存储过程出现的问题
- 最近在维护一个网站,但是里面oracle数据库的部分不懂?怎么学习oracle?
- 高分求 [淘宝助理3] 的数据库user.db的打开方法
- 这两个语句相同吗?
- 高手推荐:调试存储过程的工具!
- 怎么用远程数据库中配置调用本地脚本
- Oracle无法找到任务SID
还有个问题是,运行外层循环时,数据库文件UNDOTBS01迅速变大。
跑一次内循环,就做一次 commit ;