加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 比较从Oracle到SQL服务器的数百万条记录

发布时间:2020-12-12 06:45:19 所属栏目:MsSql教程 来源:网络整理
导读:我有一个Oracle数据库和一个SQL Server数据库.有一个表说Inventory在两个数据库表中包含数百万行,并且它不断增长. 我想比较Oracle表数据和SQL Server数据,以找出每天在SQL Server表中缺少哪些记录. 哪种方法最好? 创建SSIS包. 创建Windows服务. 我想消耗更少
我有一个Oracle数据库和一个SQL Server数据库.有一个表说Inventory在两个数据库表中包含数百万行,并且它不断增长.

我想比较Oracle表数据和SQL Server数据,以找出每天在SQL Server表中缺少哪些记录.

哪种方法最好?

>创建SSIS包.
>创建Windows服务.

我想消耗更少的资源来实现这个功能,这需要更少的时间和更少的资源.

例如:oracle中有1800万条记录,SQL Server中有16/17百万条记录

这两种不同数据库的情况出现是因为两种不同的应用程序在线和离线

编辑:如何将SQL Server从Oracle通过Oracle Gateway连接到SQL Server

1)从Oracle直接查询到SQL服务器,第一次更新SQL Server中的缺失记录.

2)在Oracle上创建一个触发器,当从Oracle删除记录并在新的oracle表中插入已删除的记录时执行该触发器.

3)创建SSIS包以将新创建??的oracle表映射到SQL服务器以更新SQL服务器记录.这样,只有少数记录必须通过SSIS每天处理.

您如何看待这种方法?

解决方法

我将创建一个SSIS包,并使用数据流/ OLE DB数据源从Oracle表加载数据.如果您有SQL Enterprise,Attunity连接器会更快一些.

然后我将SQL Server表中的密钥加载到Lookup转换中,在那里我将匹配密钥上的2个源,并将不匹配的行引导到单独的输出中.

最后,我将不匹配的行输出定向到OLE DB命令,以更新SQL Server表.

这个SSIS包需要大量内存,但由于匹配是在内存中以最小的IO完成的,因此速度可能会优于其他解决方案.它需要足够的可用内存来缓存SQL Server表中的所有密钥.

SSIS还具有以下优点:如果您以后需要它,它还有许多其他转换功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读