对于一个报告,我需要知道现在正在处理SSIS包的哪些子组件(控制流的一部分)。我知道目录视图catalog.executable_statistics
,但是似乎在 完成给定执行路径的执行之后,在其中添加了一条记录。
是否可以检查哪些执行路径已进入执行前阶段而尚未进入执行后阶段?换句话说,该软件包目前正在做什么?
我们使用SQL Server 2016企业版。
编辑: 我更喜欢可以在默认日志记录级别上使用的解决方案。
答案 0 :(得分:1)
一个选项是查询catalog.execution_component_phases
,它将在程序包执行时显示数据流任务中每个子组件的最近运行执行阶段。这将使您看到哪个组件已开始一个阶段,例如PreExecute
,但尚未开始下一个阶段,例如PostExecute
或ReleaseConnections
。要使用此功能,您还需要将日志记录级别设置为“性能”或“详细”。
答案 1 :(得分:0)
据我所知,从SQL Server执行时,没有任何现成的日志可以告诉您包中所有子组件的确切状态。
我只是在插入的某些步骤的开始使用SQL任务,完成后就更新一行,包括开始/结束日期时间,包名称和处理的行数等细节。您可以添加一列以这种方式指定受影响的子组件。