首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS多表插入与Union ALL

SSIS多表插入与Union ALL
EN

Stack Overflow用户
提问于 2012-09-26 12:01:28
回答 2查看 1.7K关注 0票数 4

我是SSIS的新手,我正在编写我的第一个SSIS包。

在我的包中,在数据流中有几个转换阶段,每个阶段都有一个脚本组件将记录(某种自定义日志)插入到ADO.NET目的地。

我使用的多个ADO.NET目标组件指向同一数据库中的同一个表。

我想知道这是不是一种正确的方法,或者我是否应该使用Union ALL并一次插入所有记录。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-26 14:45:09

从性能的角度来看,如果您将SSIS中的结果合并在一起,并将它们插入到数据库中,那么从性能的角度来看,您希望获得一个非常小的性能提升,因为您将只创建一个到实例/数据库的连接,并且根据脏页写入磁盘的时间,可以减少磁头在主轴上移动的次数,但绝不能保证这一点。

我认为这里更重要的是自定义日志记录的目的是什么?如果日志记录了您在包中走了多远,在某个阶段更新了多少记录,等等,那么我强烈建议不要在包中的UNION在最后插入它们,原因如下。

想象一下这样一个场景:包在半路上掉了下来,您的任务是首先诊断问题,然后修复由于故障而损坏的一些数据。如果您在最后写入所有日志条目,而包尚未完成,则日志条目将不会被写入,您的任务将变得更加困难。

相反,我会将ADO连接管理器设置为保留相同的连接。这样,连接将在整个时间内保持打开,您将不会有必须重新连接的开销。

票数 1
EN

Stack Overflow用户

发布于 2012-09-26 12:08:11

我认为Union All,然后一次插入所有内容更好。

这将使您的ssis清晰,并获得更好的性能。(据我所知,SSIS将使用服务器资源而不是数据库资源,对吧?)

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

https://stackoverflow.com/questions/12594359

复制
相关文章

相似问题

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