问:我想将100G的SQL Server6.5数据库的数据移到Oracle9i R2上。数据转换服务(DTS)好像跟我们想象的一样快:移动1M的13列的表的数据行将花费数小时。实现此需求最好的工具是什么? 答:首先,我假定你可以在SQL Server7.0或2000中使用数据转换服务(DTS),甚至你的源数存储在SQL Server6.5中。(当然,DTS不存在6.5版本的SQL Server中,我们使用BCP)。
并且,假定你已经有了必须的Oracle ODBC驱动,以便你可以创建用来提供Oracle连接的详细信息数据源名(DSN)。一旦你有了此驱动,你可以将Oracle指定为你的DTS包……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:我想将100G的SQL Server6.5数据库的数据移到Oracle9i R2上。数据转换服务(DTS)好像跟我们想象的一样快:移动1M的13列的表的数据行将花费数小时。实现此需求最好的工具是什么?
答:首先,我假定你可以在SQL Server7.0或2000中使用数据转换服务(DTS),甚至你的源数存储在SQL Server6.5中。(当然,DTS不存在6.5版本的SQL Server中,我们使用BCP)。并且,假定你已经有了必须的Oracle ODBC驱动,以便你可以创建用来提供Oracle连接的详细信息数据源名(DSN)。一旦你有了此驱动,你可以将Oracle指定为你的DTS包中的目标文件。这是我给出的关于你使用的DTS包的一些建议。
你可能考虑数据分割。不用DTS包中的单个数据管道,而使用5,6或7个可以同时运行的数据管道。查看源数据的列并且想一想有没有办法可将数据源列上的数据进行水平分割。如果你的源数据包含日期时间列,这将会是一个比较理想的选择。想一想你能否通过季度,月等来分割数据。我也曾见过通过地理区域来分割数据的。
设计好你的包,以便它可以并行执行这些成倍增加的转换(数据管道)。当你在设计模式下执行包,当前正在执行的任务将会由一个绿色的执行箭头标识出来,并且也会显示。你的目标应该是使所有的数据管道并列运行。
来做个移动数据子集的试验,在这个试验过程中,你将SQL Server中的数据转移到一个中间文本文件中,然后再转移到Oracle中。你可以看到使用SQL源与Oracle目标之间的中间文件来转移数据速度会更快。
作者
Techtarget旗下Searchoracle网站的资深专家,有16年IT行业经验、计算机科学硕士、专攻数据库方向,曾担任系统管理员等职。此外,他还获Oracle 7.3、8和8i的OCP数据库管理员证书,目前为SGT Inc.公司首席DBA。