我有一个30W条的SQL脚本,怎么执行。
因为要大量数据测试,根据目前生成的数据,生成新的数据。根据要求生成了30W条的插入语句,由于数据量大,怎么插入比较快。比较合理,有经验的,大家一起讨论。
------解决方案--------------------方法一:
INSERT /*+Append*/ INTO tab1
SELECT * FROM tab2;
方法二:假如TAB1表中的没有数据的话,先把原表DROP掉,然后在CREATE AS,比如:
DROP TABLE TAB1;
CREATE TABLE TAB1 AS SELECT * FROM TAB2;
然后在此基础上建立索引。
更多方法,请参考:http://blog.csdn.net/tianlesoftware/article/details/4745144
------解决方案--------------------30W
就算用PL/SQL自带工具的话,10分钟内也完成了吧
------解决方案--------------------
这招行得通!
------解决方案--------------------可以每隔几万行执行一个commit.要不redo表空间太大了
------解决方案--------------------
先把要插入表的索引去掉,还可以加append提示,但不建议,
做成sql文件直接在sqlplus命令行执行@xxx.sql就行了
------解决方案--------------------如果没有数据的话用二楼的第二种方法应该是最快的。如果需要根据主键关联的话可以考虑直接用UPDATE,我之前做一个一百万条数据的表的数据修改,直接等值连接的update也就一分多钟,中间没有什么计算的过程。