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了解不深,希望各位大大能帮我解决这个问题,谢谢
数据库环境: 可能有多个机器往一台数据服务器上导入数据,导入数据的表都是一样的。
我每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分钟内完成....
禁用索引确实能够提高速度!
并不是说一次导入千万,而是数据库里已经有千万的数据,然后我再导入几万或者10几万的数据,不过导入有100个表左右,但其中有一半的表数据都不大。
不知道你是否有导入数据速度较快,并且不影响索引的方法
作者: g394594141 发布时间: 2011-09-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28