Sql Server 2005 - 每次运行的每个组件的SSIS统计信息

时间:2012-04-16 14:57:20

标签: sql-server-2005 ssis dmv

来自不同的ETL工具,我试图弄清楚如何在SSIS中运行时获取每个组件的(生产)统计数据。

例如,如果平面文件是从具有高偏差的外部源读取(行/秒在不同时间急剧变化),我想知道该信息。

如果SSIS有一个重要的“慢点”(缓冲区填满/数据流受到影响),我也想知道这些信息。

使用例如来自DMV的sprocs,CPU时间和readIO / writeIO也是理想的(对于通过以一致/可测量的方式从sproc转移到SSIS而显示改进的人来说非常有用)。

我问这个问题的原因是我在调试期间看到行通过BIDS,但它可能无法反映生产中每个组件的实际行数/秒。

如何为生产环境启用/内省/获取这些类型的统计信息(即使它受到轻微打击,数字也是一个大问题。)

谢谢!

-Darren

2 个答案:

答案 0 :(得分:1)

不确定它是否会有所帮助,但也许您可以尝试在程序包上配置日志记录并选择“SQL Server Profiler的SSIS日志提供程序”

它显示了数据源处理的开始和结束之间的几个信息

答案 1 :(得分:1)

这在SSIS 2005中很难做到。在尝试从复杂SSIS包中的事件处理程序执行任务级日志记录时,我已经看到运行时引擎“停止”。一种想法:仅通过在源适配器之后和输出行的每个数据流路径上添加行计数转换来检测数据流。然后向每个数据流任务的OnPreExecute事件处理程序添加一个执行SQL任务以记录执行的开始,并将另一个执行SQL任务添加到相应的OnPostExecute事件处理程序。在onPostExecute逻辑中,存储数据流任务执行的行计数和结束时间。我相信这将提供足够的指标来计算数据流管道的吞吐量。

希望这有帮助, 安迪