Ssis SSI在非链接服务器上插入不匹配的数据
这是关于SQL Server 2008 R2和SSI的 我需要用另一台服务器上的生产表中的新数据更新一台服务器上的几十个历史表 这两台服务器没有也不会链接 一些历史表有1亿行,一些生产表有数千万行 我目前为使用以下数据流组件的每个表准备了一个流程:Ssis SSI在非链接服务器上插入不匹配的数据,ssis,Ssis,这是关于SQL Server 2008 R2和SSI的 我需要用另一台服务器上的生产表中的新数据更新一台服务器上的几十个历史表 这两台服务器没有也不会链接 一些历史表有1亿行,一些生产表有数千万行 我目前为使用以下数据流组件的每个表准备了一个流程: OLEDB源任务以提取适当的生产数据 查找任务,检查生产数据的键是否已存在于历史记录表中,并使用“重定向到错误输出”—— 将丢失的数据传输到OLEDB目标历史记录表 这个过程对于大型表来说太慢了。一定有更好的办法。有人能帮忙吗 我知道如果服务器被链接
我知道如果服务器被链接,一个基于集合的查询可以轻松高效地完成任务,但是服务器没有链接 第1步。向新服务器增量批量导入适当的生产数据。 Ref:将数据从单个客户端(或流)导入非空表 第二步。使用Merge语句标识新记录/现有记录并对其进行操作
我意识到这将在新服务器上占用大量的磁盘空间,但该过程会运行得更快。将您的问题细分为更小的问题。这是你解决这个问题的唯一办法 让我们检查一下问题
SELECT key1,key2 FROM MyTable
的查询更好的是,您能为查找提供一个过滤器吗其中ProcessingYear=2013
,因为如果OLTP仅包含2013年数据,则2012年无需浪费缓存如果您仍然存在性能问题,请建立一个理论基线(在现实世界中永远不会出现的理想条件下,我可以在N个时间单位内将1GB从a推到B),然后按照您的实际情况进行操作。您必须有一个限制因素(IO、CPU、内存或网络)。找到罪魁祸首并投入更多资金,或者重新构建解决方案,直到它不再是滞后指标。在OLEDB源代码中,您是否使用SQL命令作为数据访问模式?一个常见的性能提示是使用SQL命令并编写一个select语句,只获取所需的列。