2010-06-10 121 views
0

我需要从Oracle 10G数据库表中导出1亿个数据行(平均行长度〜100字节)到SQL Server(通过WAN/VLAN,每秒6MBits)定期进行。到目前为止,这些都是我尝试过的选项和快速总结。有没有人试过这个?还有其他更好的选择吗?哪种选择在性能和可靠性方面最好?所花费的时间是使用少量数据的测试计算出来的,然后将其推算出来以估计所需的时间。将大量数据从Oracle 10G导出到SQL Server 2005

  1. 在SQL服务器或SSIS包上使用数据导入向导来导入数据。完成任务需要大约150个小时。
  2. 使用Oracle批处理作业将数据转换为以逗号分隔的平面文件。然后使用SSIS包将该文件FTP到SQL服务器,然后直接从平面文件中加载。这里的问题是预计以GB运行的平面文件的大小。
  3. 虽然这个选项有很大不同,但我甚至会考虑使用链接服务器在运行时直接查询Oracle数据以避免引入数据的选项。性能是一个大问题,我在创建表索引方面对Oracle数据库的控制有限。

问候,

单珠

回答

1

我加载50 GB的文件中的所有time..this是我做的。如果我有一个链接的服务器,我使用SSIS来加载表格,只要确保选择FAST LOAD和Table Lock,使sute表锁定被检查,否则它不会是一个真正的最小化日志操作,你的DB也必须是在SimpleBulk恢复模式

看到图像

alt text

如果我我喜欢BCP出来,然后BCP或BULK INSERT

0

想想将进程分成块,所以你可以在第一段中完成一些事情llel。例如,如果从Oracle导出100,000个记录到平面文件的时间等于复制文件的时间,这等于将文件导入SQL的时间,那么您可以构建一个系统,这些同时像流水线一样。这样,如果一件失败,你不必重新开始。显然这需要一些实验。您没有定义可能会在某种程度上规定设计的“常规基础”,系统负载只是其中的一种权衡。

干杯, Brian

相关问题