我想比较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每天处理.
您如何看待这种方法?
解决方法
然后我将SQL Server表中的密钥加载到Lookup转换中,在那里我将匹配密钥上的2个源,并将不匹配的行引导到单独的输出中.
最后,我将不匹配的行输出定向到OLE DB命令,以更新SQL Server表.
这个SSIS包需要大量内存,但由于匹配是在内存中以最小的IO完成的,因此速度可能会优于其他解决方案.它需要足够的可用内存来缓存SQL Server表中的所有密钥.
SSIS还具有以下优点:如果您以后需要它,它还有许多其他转换功能.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。