关于数据的导入和导出性能问题

chenminer 2004-11-03 02:08:50
大家好,我现在有个问题就是关于数据导出和导入性能问题。
假设我现在有个表A(30个字段)。里面有1000万条记录。我想把其中的10个字段的数据导出到表b(10个字段)。原来我们的做法是,用vb来做这个事情。单线程。跑起来很慢。完成整个操作需要两天。且如果中间出了问题,还要重来。且必须要有专人守在电脑旁边。

请问大家有没有遇到此类问题,你们的解决方法是什么。可以给点提示吗。谢谢拉
...全文
238 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jametong 2004-11-04
  • 打赏
  • 举报
回复
使用工具导出到文本,再使用sqlldr或者外部表(external table)导入数据库吧.

导入的效率是很高的,导出的速度看你使用什么工具,或者什么语言处理了.

如果使用oci多线程处理,效率应该很可观啊
chenminer 2004-11-03
  • 打赏
  • 举报
回复
或者可以采取这样的方法,比如,我可以从数据库中把a表中的数据,导到一个文本文件,然后从文本文件中导出到另外的一个数据库的b表。
因为,两个数据库不可连接的
chenminer 2004-11-03
  • 打赏
  • 举报
回复
对,是两个不同的数据库。且不在同一台机器,而且两台机器之间的网络不是很好,且必须要用程序来实现。因为用户经常要用到。如果我开多线程。或者先建立多个临时表。然后拼起来,是不是很好啊。
jametong 2004-11-03
  • 打赏
  • 举报
回复
create table b nologging as
select /*+parallel(a,4)*/ col1,col2,col3,....,col10
from a
where ...;

1000万条记录,估计1-2个小时就可以解决问题了^_^.

如果不是在同一台机器上,可以使用数据库链的^_^
bzszp 2004-11-03
  • 打赏
  • 举报
回复
把目地表中的索引先drop掉,导完数据后重新创建。
zmgowin 2004-11-03
  • 打赏
  • 举报
回复
2天,每秒钟只处理5条记录???
luxuezhu 2004-11-03
  • 打赏
  • 举报
回复
就是。2天是什么概念
LGQDUCKY 2004-11-03
  • 打赏
  • 举报
回复
一定得使用程序做吗?

如果使用EXP可能会方便点

如:

create table a_tmp as select col1,col2..... col10 from a where ...;

然后EXP a_tmp,这样是最好的方法,如果要程序做那要存储过程来做。。。

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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