optimizing SSIS 2008 package



我们正在处理SQL Server数据库中的大数据,
现在执行包需要数小时
是否有任何方法/技术可以优化包的执行时间
我了解SSIS并行性
还有其他最好的方法吗?

编辑:
我们正在处理超过200万份的记录
SQL server数据库是数据源和目的地(在同一服务器中),我使用了诸如派生列、条件拆分、多播、数据转换、查找、OLEDB命令、OLEDB目的地、OLEDB源、合并、合并-联接、排序器、聚合转换等转换。

优化SSIS:的一些好例子

  1. SSIS优化1

  2. SSIS优化2

  3. SSIS优化3

  4. SSIS优化4

看看任何需要对数据进行排序的任务,这些任务通常会减慢速度。例如,不要使用合并联接,而是使用带有联接的查询数据源。

关于在SSIS中使用不同类型转换的含义的一篇非常好的文章:SSIS 中的非阻塞、半阻塞和全阻塞组件

基本上,如果您在包中使用排序或聚合,那么您将完全停止这些组件,直到每一行都被它们消耗掉,然后再将任何行传递给下一个组件。只有在数据流中没有其他选择的情况下才能使用这些选项。

像Merge和MergeJoin这样的半阻塞组件为正在通过的行创建一个新的缓冲区,因此在内存中创建缓冲区时会产生开销。在代码中谨慎使用此选项。

非阻塞将允许您最大限度地提高的吞吐量

避免半阻塞组件。

将SQL任务组件用于合并、排序、聚合功能

在OLE DB目标中为"每批行"one_answers"提交大小"设置10000。

在OLE DB目标中设置数据访问模式(表或视图快速加载)。

最新更新