gpt4 book ai didi

sql-server - SSIS 多表插入与联合 ALL

转载 作者:行者123 更新时间:2023-12-03 16:41:20 25 4
gpt4 key购买 nike

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

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

我正在使用多个 ADO.NET Destination 组件,这些组件指向同一个数据库中的同一个表。

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

任何帮助,将不胜感激。

最佳答案

从性能的角度来看,如果您在 SSIS 中将结果联合在一起并将它们插入到数据库中,您将获得非常非常小的性能提升,因为您将只创建一个到实例/数据库的连接,并且取决于何时脏页被写入磁盘是可能的,但绝不保证磁头可能需要在主轴上移动的次数更少。

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

想象一个场景,当包在中途摔倒时,您的任务是首先诊断问题,然后修复由于失败而损坏的一些数据。如果你最后写了所有的日志条目,而包还没有完成,日志条目将不会被写入,你的任务会困难得多。

相反,我会将 ADO 连接管理器设置为保留相同的连接。这样,连接将始终保持打开状态,您将不会有必须重新连接的开销。

关于sql-server - SSIS 多表插入与联合 ALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12594359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com