我有一个包含insert语句的大型.sql文件(包含1百万条记录)。 这是由我无法控制的外部系统提供的。
我必须将这些数据导入到我的数据库表中,我认为这是一项简单的工作,但是我觉得我错了。
我正在使用AllroundAutomations的plsql开发人员,我去了
工具 - 导入表 - SQL插入 - 指向sqlldr.exe的exe, 并使用insert语句输入我的.sql文件。
但是这个过程非常慢,只能在一分钟内插入 100条记录,我预计整个过程不会超过一小时。
有没有更好的方法来做到这一点,只是导入所有数据听起来很简单,但这需要花费很多时间。
P.S:我是开发人员,而不是DBA而不是Oracle的专家,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
当运行大量INSERT时,您应首先删除表中的所有索引,然后禁用所有约束,然后运行INSERT语句。您还应修改脚本,以便在每1000条记录之后包含一个COMMIT。然后重新添加索引,重新启用所有约束,并收集该表的统计信息(DBMS_STATS.GATHER_TABLE_STATS)。
祝你好运。