在存储过程中完成业务逻辑操作后,需要将临时表中的数据
插入到历史表中
insert into table1 select * from table2;在执行到此语句时,就会停下来处于一直执行状态,
以前没有问题,现在table2中大概有五百五十万条记录
现在一天将要插入5万条记录单独执行上述语句很快也就执行完成
插入到历史表中
insert into table1 select * from table2;在执行到此语句时,就会停下来处于一直执行状态,
以前没有问题,现在table2中大概有五百五十万条记录
现在一天将要插入5万条记录单独执行上述语句很快也就执行完成
解决方案 »
- 测试oracle连接出现的小问题,纠结了半天没找出,汗
- 数据库删除存储过程
- SOS!!!!问题出在哪儿,我已经晕了。。。
- 求一个SQL查询语句
- 为什么我从SQL 2005导出一个表到oracle 10g,在查询的时候提示我 oracle table or view does not exist
- 如何更改一个表的 primary key?
- 请duanzilin(寻)帮忙解答一下这个问题
- 如何能够实现一个SQL语句(select)定时每5分钟执行一次,并将结果累计输出
- LINUX下写一脚本,想定期执行:ORACLE中的删除或者修改!谢谢
- 自引用查询
- Linux下安装orcle9i,界面出现乱码 jdk 1.5
- 一条sql 怎么也想不明白
SQL> alter table Ytab nologging;设置表为nologging最后可以对于插入的语句进行一些调整。
sql> insert /*+ append */ into Ytab select * from Ytab2
估计你的TABLE2的数据是累积数据而不是当天产生的临时数据
建议:
1.在INSERT之前先将TABLE1的数据清掉,这样的话就不需要针对TABLE2中的数据每一条都要到TABLE1中检索一次.
2.执行业务逻辑操作之前先清掉TABLE2的数据,只将新增的数据放入到TABLE2中,这样速度应该提高不少.
loop
insert into table1
values(b.column1,b.column2,...);
delete table2
where rowid = b.rowid;
commit;
end loop;
sql> insert /*+ append */ into Ytab select * from Ytab2
这条语句我看不懂,能不能在说清楚点。谢谢!!!