2

我们正在处理 SQL Server 数据库中的大数据,
现在包执行需要几个小时才能执行。
有什么方法/技术可以优化包的执行时间吗?
我知道SSIS Parallelism
还有其他最好的方法吗?

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

4

4 回答 4

2

优化 SSIS 的一些很好的例子:

  1. SSIS优化1

  2. SSIS优化2

  3. SSIS优化3

  4. SSIS优化4

于 2012-09-11T16:54:59.447 回答
1

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

于 2012-09-10T14:57:59.253 回答
1

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

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

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

非阻塞将允许您最大化您的吞吐量

于 2012-09-18T13:23:01.233 回答
0

避免半阻塞组件。

使用 SQL 任务组件进行合并、排序、聚合功能

在 OLE DB Destination 中将 Row per batch 和 commit size 设置为 10000。

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

于 2012-12-05T09:02:28.913 回答