Oracle大批量数据导入,如何更快?[皱老大看到的话过来帮帮忙]

hanxianlong 2008-11-21 05:20:09
环境: oracle 9i
表rate中有4个字段:PayEndYear,InsureYear,AppYear,Amount
现在有一个大小为4.34MB的SQL文件,其中为大约2W条如下的插入语句:
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(1,2,2,300.00);
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(1,2,3,300.00);
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(1,3,2,300.00);
...
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(20,500,2,1000.00);
commit;

复制该文件文件内容到剪贴版中,在PL/Sql的Comand Window中按下Ctrl+V,执行时间大约得5min……如果一次导入不成功则需要再花5min……
该如何提高导入速度????
各位老大,帮帮忙,谢谢了~~~
...全文
205 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
leonwan 2008-12-16
  • 打赏
  • 举报
回复
关注
f12014 2008-11-28
  • 打赏
  • 举报
回复
试试PLSQL Developer的文本倒入器吧
yonghengdizhen 2008-11-27
  • 打赏
  • 举报
回复
是不是有索引.20000条按理用不了那么久.
平均行长是多少?
yonghengdizhen 2008-11-26
  • 打赏
  • 举报
回复
用/*+ append */优化提示
hanxianlong 2008-11-26
  • 打赏
  • 举报
回复
其实单独插入一条记录是没有什么感觉的,就是因为太多,每条执行的时间加起来时间就长了
sqlldr又无法完成从已经生成的insert语句导入数据到数据表中,所以就不知道该如何是好了
yonghengdizhen 2008-11-26
  • 打赏
  • 举报
回复
如果真的很慢,是否和存储管理有关呢?
检查一下表存储参数的pctfree和pctused等.分析服务器等待事件,看是否有过多的和存储分配相关的等待
hanxianlong 2008-11-26
  • 打赏
  • 举报
回复
试了,速度依然很慢,平均插入一条记录大约需要0.016秒,
所以2W条记录需要时间为
20000*0.016=320秒=5分钟
基本上没有啥变化……
继续等待高手解答
szflower 2008-11-22
  • 打赏
  • 举报
回复
不行,你只保留数据.然后再load.
hanxianlong 2008-11-22
  • 打赏
  • 举报
回复
sqlldr可以用已经生成好的insert语句作为数据源么?
szflower 2008-11-21
  • 打赏
  • 举报
回复
你能不能改用SQLLDR导入.那样会很快的.

8,028

社区成员

发帖
与我相关
我的任务
社区描述
高性能数据库开发
社区管理员
  • 高性能数据库开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧