首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将6,000个表和数据从sqlserver复制到oracle ==>的最快方法?

将6,000个表和数据从sqlserver复制到oracle ==>的最快方法?
EN

Stack Overflow用户
提问于 2010-04-28 08:23:32
回答 3查看 1.9K关注 0票数 6

我需要复制表和数据(大约5年的数据,6200个表)存储在sqlserver中,我正在使用datastage和odbc连接来连接和datastage自动创建带有数据的表,但它需要2-3个小时每个表,因为表非常大(0.5gig,300+columns和大约400k行)。

我怎么才能做到这一点呢?在这个速度下,我每天只能复制5张表,但在30天内,我需要移动这6000张表。

EN

回答 3

Stack Overflow用户

发布于 2010-04-28 09:25:36

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

您有一个来自SQL Server的提取阶段。您有从SQL Server机器到Oracle机器的传输。你拿到货了。

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

除非发生了重大的转换,否则我会忘记数据存储。任何不是提取或加载的东西都是多余的,需要最小化。

票数 6
EN

Stack Overflow用户

发布于 2010-04-28 08:40:49

你能并行地同时传输不同的表吗?

我们定期将大型平面文件传输到SQL Server中,我会并行运行它们-它使用网络和SQL Server上更多的带宽,但它们一起完成的速度比串行更快。

票数 2
EN

Stack Overflow用户

发布于 2010-04-28 18:46:19

您是否考虑过编写表模式的脚本并在Oracle中创建它们,然后使用SSIS将数据批量复制到Oracle中?另一种选择是使用链接服务器和一系列"Select * INTO xxx“语句,这些语句将复制模式和数据(减去关键条件),但我认为6000个表的性能将相当糟糕。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2726061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档