如何更有效??? sql_cmd:='insert into '||billmonthname||' select * from '||day_tablename; EXECUTE IMMEDIATE sql_cmd; COMMIT;把每天的数据导入到月份表中,每天数据量挺大。300万条,如何提高效率?这是过程的一部分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将sql_cmd:='insert into '||billmonthname||' select * from '||day_tablename;改成sql_cmd:='insert /*+APPEND*/ into '||billmonthname||' select * from '||day_tablename;可以提高一些速度另外可能的话可以在insert操作前将目标表的约束和索引去掉,等insert完数据在重建 导入时把索引触 发器去掉是比较好的,速度也比较快,做一个job每天在业务量少的时候做,在做之前删除索引,禁用触发器,然后导入后再建立! 我觉的如果用sql语句来做 事务处理需要太多资源 可不可以改个思路来解决呢?如:做个job 先把数据用导出命令导出来 再导入呢? 因为导入导出可以一段段数据提交 不要用insert,太慢了,用sqlloader吧,要快好多。方法:先吧表中的数据导到一个文本文件,再用sqlldr命令导入 对于你的300万条记录没有什么明显效果,同意使用sqlloader ORA-12560: TNS: 协议适配器错误 一条超难想的sql,高手大家进来看看 如何通过代码获得视图的创建代码 select 语句问题。 菜鸟问题,关于在表里新加一列。 关于oracle的配置问题 请问,我再一个台机器上做得oracle数据库如何移植到另外一台机器上? 请问怎么样把word文档存入blob字段,又怎么样把它读出来显示在网页上? 关于集合de问题 _RecordsetPtr的update操作错误问题 请问怎么能减少表空间文件的大小 (8771)/(8772) 替换为 a("8771")/a("8772") 采用正则表达式大批量更换
改成sql_cmd:='insert /*+APPEND*/ into '||billmonthname||' select * from '||day_tablename;
可以提高一些速度另外可能的话可以在insert操作前将目标表的约束和索引去掉,等insert完数据在重建
如:做个job 先把数据用导出命令导出来 再导入呢? 因为导入导出可以一段段数据提交
方法:先吧表中的数据导到一个文本文件,再用sqlldr命令导入