SSIS 2012-包任务运行时状态

时间:2019-05-05 14:15:34

标签: sql-server ssis ssis-2012

在[目录]表中。[execution_component_phases]中有一列称为 相。 “相位”列的值是:

  • 预先执行
  • 验证
  • ProcessInput
  • ReleaseConnection
  • AcquireConnection。

有人可以建议哪个值表示某项任务中的特定任务吗? 程序包处于运行状态。

是否有任何值表明任务已开始但尚未完成。

致谢

1 个答案:

答案 0 :(得分:2)

基于[catalog].[execution_component_phases]表的官方文档:

  

显示每个执行阶段中数据流组件所花费的时间。

     

此视图为数据流组件的每个执行阶段显示一行,例如验证,执行前,执行后,PrimeOutput和ProcessInput。每行显示特定执行阶段的开始时间和结束时间。

根据我的经验,我可以假定执行阶段的顺序为:

  1. AcquireConnection:获取所需的相关连接
  2. 验证:验证任务/组件
  3. 预先执行
  4. ProcessInput:处理阶段
  5. PrimeOutput:生成输出
  6. 执行后
  7. ReleaseConnection:释放获得的连接

在官方文档中,他们提供了以下查询来读取每个阶段花费的时间:

use SSISDB  
select package_name, task_name, subcomponent_name, execution_path,  
    SUM(DATEDIFF(ms,start_time,end_time)) as active_time,  
    DATEDIFF(ms,min(start_time), max(end_time)) as total_time  
from catalog.execution_component_phases  
where execution_id = 1841  
group by package_name, task_name, subcomponent_name, execution_path  
order by package_name, task_name, subcomponent_name, execution_path

基于上述信息,您可以-例如-检查当前任务阶段是否知道它是否仍在运行。

参考