检查 SSIS 中 ETL 的性能

Posted

技术标签:

【中文标题】检查 SSIS 中 ETL 的性能【英文标题】:Check performance of ETL in SSIS 【发布时间】:2018-07-31 01:31:47 【问题描述】:

如何检查在 SSIS 中提取数据和加载数据所花费的时间。 我现在使用 Attunity 连接器从 Oracle 中提取数据,然后使用 OLE DB 目标将其加载到 SQL Server 中。使用 Attunity 对速度没有任何影响。当我使用与 OLE DB Source 相同的 attunity 连接器时,从 oracle 提取并加载 5,600,000 行到 SQL Server 大约需要 5 分钟。

【问题讨论】:

您可以像 AsRa 所写的那样创建一个执行 SQL 任务,该任务在开始加载之前将 select getdate() 写入表,并在加载结束时添加一个执行 SQL 任务它还将 select getdate() 写入表。然后您将记录花费了多长时间。 【参考方案1】:

Progress 标签中,您可以看到完成数据加载所用的时间。

【讨论】:

【参考方案2】:

正如其他人所指出的,包持续时间包含在 GUI 中,您还可以将开始/结束时间写入包内的日志表以捕获执行时间。如果您要查找有关特定组件的更多详细信息,请启用日志记录,选择 PipelineComponent 事件,然后在您要监视的任务上查找此事件。 PrimeOutput 步骤,即数据被发送到下游时,将是最受关注的。

【讨论】:

以上是关于检查 SSIS 中 ETL 的性能的主要内容,如果未能解决你的问题,请参考以下文章

SSIS数据转换后数值总数差异过大

SSIS - ETL - 执行性能问题

某大型银行电子渠道报表系统SSIS ETL优化报告

我可以在 SSIS 中抑制“对于每个文件的枚举器为空”警告吗?

SSIS Design2:增量更新

通过 SSIS 将数据从一个表传输到另一个表