sql-server - 将6000个表和数据从sql server复制到oracle ==>最快的方法?

标签 sql-server oracle datastage

我需要复制存储在sqlserver中的表和数据(大约5年的数据,6200个表),我使用datastage和odbc连接进行连接,datstage自动创建包含数据的表,但每次需要2-3小时表,因为表非常大(0.5 GB、300+列和大约 400k 行)。

我怎样才能实现这个速度,因为按照这个速度,我每天只能复制 5 张 table ,但在 30 天内我需要移动这 6000 张 table 。

最佳答案

6000 个表,每个 0.5 GB 大约为 3 TB。加上索引。 我可能不会选择 ODBC 连接,但问题是瓶颈在哪里。

您有一个来自 SQL Server 的提取阶段。您可以从 SQL Server 设备到 Oracle 设备进行传输。你有负载。

如果网络是限制能力,您可能最好提取到文件,压缩它,传输压缩文件,解压缩它,然后加载它。 Oracle 中的外部表是从平面文件(分隔或固定长度)加载数据的最快方法,最好分布在多个物理磁盘上以分散负载且无需日志记录。

除非发生重大转变,否则我会忘记数据阶段。任何不提取或加载的内容都是多余的,应尽量减少。

关于sql-server - 将6000个表和数据从sql server复制到oracle ==>最快的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2726061/

相关文章:

datastage - 有没有办法使用用户事件变量在 Datastage 中存储 SQL

java - 无法使用 JDBC 连接到 SQL Server

sql - 基于多个日期范围优化查询选择

oracle - 带有 Oracle 厚 OCI 驱动程序的 Grails 使用错误的用户向 Oracle 进行身份验证

oracle - Oracle中将字符拆分为多行

error-handling - DataStage-将失败消息捕获到SQL表中

sql - 使用数据透视表加快计数 (*)

mysql - 将具有 GROUP BY 的 MySQL 查询转换为 SQL 查询

oracle - ORA-01882 : timezone region not found

performance - 提取 DataStage 作业性能统计信息(开始和结束时间)