+ -
当前位置:首页 → 问答吧 → Oracle用SQL*LOADER并行导入有索引的表优化

Oracle用SQL*LOADER并行导入有索引的表优化

时间:2011-09-26

来源:互联网

我现在遇见一个问题。问题描述描述如下:
数据库环境: 可能有多个机器往一台数据服务器上导入数据,导入数据的表都是一样的。
我每10分钟要导入一次数据,而导入的表有100多个,导入的量很大,需要在10分钟里导入完。
问题:为了提高导入速度,我使用了direct=y的参数。但是direct=y在多个机器同时往一个表里导入数据时,只有一个为导入成功,其他的都报 
SQL*Loader-951: 调用一次/加载初始化错误
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源 。
于是在网上我查到可以用parallel=true来设置同时导入。但不幸的事情又发生了,因为我表里有索引,不能使用parallel=true。
如果每次导入我都删除索引,再重建索引,我觉得是否也会很慢,因为有好些表的数据都以千万计。

现在我不知道如果既能导入速度快,又不报错,小弟是半路出家,对oracle了解不深,希望各位大大能帮我解决这个问题,谢谢

作者: g394594141   发布时间: 2011-09-26

我觉得不太现实,你说千万级的数据要求在10分钟内完成....
禁用索引确实能够提高速度!

作者: BearFishShow   发布时间: 2011-09-27

引用 1 楼 bearfishshow 的回复:

我觉得不太现实,你说千万级的数据要求在10分钟内完成....
禁用索引确实能够提高速度!


并不是说一次导入千万,而是数据库里已经有千万的数据,然后我再导入几万或者10几万的数据,不过导入有100个表左右,但其中有一半的表数据都不大。

不知道你是否有导入数据速度较快,并且不影响索引的方法

作者: g394594141   发布时间: 2011-09-27

热门下载

更多