SSISDB3:Package的执行实例

简介:

Package的每一次执行(Execution),集成服务引擎都会在SSISDB中创建唯一的操作实例(Operation) 和 执行实例(Execution),实例都有唯一的ID进行标识。跟SSIS工程操作相关的是操作实例,跟Package的运行相关的是执行实例。Package的每次执行都会生成一个唯一的ExecutionID,并记录执行实例运行的结果和状态。在每个Execution Instance中,Package都会执行Task或Container,每一个Task或Container都是一个Executable,SSISDB会记录每个Executable执行的状态。

一,创建转存文件

转存文件(dump file)主要用于Package的开发阶段,用于对Package进行测试和故障排除。转存文件默认存储在ErrorDumps文件夹下:C:\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps,扩展名是.tmp和 .mdmp,前者是以文本格式存储,该文件会记录Package执行实例的最近的消息,后者是而二进制文件。

创建转存文件,有两种方式:

  • 第一种方式:使用特殊的执行参数,配置执行实例,当Package在运行过程中出现错误,或者错误事件被触发时,集成服务引起自动创建转存文件。
  • 第二种方式:在Package正在运行(running)时,调用 catalog.create_execution_dump  存储,暂停当前的执行实例,创建转存文件。

1,为正在运行的Package创建转存文件

调用存储过程:catalog.create_execution_dump,暂停正在执行的Package,创建转存文件。一旦成功创建转存文件,那么package将会终止运行。

exec catalog.create_execution_dump [ @execution_id = ] execution_id

2,在执行Package之前,设置执行参数

通过设置Package执行实例的配置参数:DUMP_ON_ERROR,在Package运行出现错误时,自动创建转存文件。

exec catalog.set_execution_parameter_value 
      @execution_id = @package_execution_id
    , @object_type = 50
    , @parameter_name =  'DUMP_ON_ERROR'
    , @parameter_value = 1

二,查询执行实例

执行实例都会对应一个操作实例,执行实例是Package的一次执行,该Package可能会调用其他Package。每个Package都会执行其包含的可执行组件(Executable),处理数据;集成服务引擎会记录Package和可执行组件的状态。

1,查询执行实例

复制代码
select e.execution_id,
    e.folder_name,
    e.object_type,
    obt.object_type_descr,
    e.project_name,
    e.package_name,
    opt.operation_type_descr,
    e.created_time,
    ops.operation_status_descr as execution_status,
    e.caller_name,
    e.start_time,
    e.end_time
from catalog.executions e
inner join helper.OperationType opt 
    on e.operation_type=opt.operation_type
inner join helper.ObjectType obt 
    on e.object_type=obt.object_type
inner join helper.OperationStatus ops 
    on e.status=ops.operation_status
order by e.start_time desc
复制代码

2,查询Executable

复制代码
select e.executable_id,
    e.package_name,
    e.package_path,
    e.executable_name,
    --e.executable_guid,
    er.execution_result_descr,
    es.execution_duration/1000/60 as execution_duration_m,
    cast(es.start_time as datetime) as start_time,
    cast(es.end_time as datetime) as end_time,
    es.execution_value
from catalog.executables e 
inner join catalog.executable_statistics es 
    on e.executable_id=es.executable_id 
        and e.execution_id=es.execution_id
inner join helper.ExecutionResult er 
    on es.execution_result=er.execution_result 
where e.execution_id=23537 
order by es.end_time desc
复制代码

三,查看Execution的资源消耗

如果一个 执行实例正在运行,处于running 状态,可以通过函数 catalog.dm_execution_performance_counters(@execution_id) 查看资源利用情况,该函数返回12个performance counter,统计该running execution自开始执行到现在为止的信息。

复制代码
select e.execution_id, 
    e.folder_name,
    e.project_name,
    e.package_name,
    e.start_time,
    epc.counter_name,
    epc.counter_value
from catalog.executions e
cross apply catalog.dm_execution_performance_counters(e.execution_id) as epc
where e.status=2 --running
order by e.execution_id, 
    epc.counter_name
复制代码

四,在package执行错误时,查看失败的Executable

select e.folder_name,
    e.project_name,
    opt.operation_type_descr as operation,
    obt.object_type_descr as object_type,
    ops.operation_status_descr as operation_status,
    et.package_name,
    et.package_path as executable_path,--relative path
    --es.execution_path as executable_full_path,
    et.executable_name,
    cast(es.execution_duration/1000/60.0 as decimal(10,1))as duration_m,
    er.execution_result_descr as execution_result,
    es.start_time 
    --,es.end_time
from catalog.executions e
inner join helper.OperationType opt 
    on e.operation_type=opt.operation_type
inner join helper.ObjectType obt 
    on e.object_type=obt.object_type
inner join helper.OperationStatus ops 
    on e.status=ops.operation_status
inner join catalog.executables et
    on e.execution_id=et.execution_id
inner join catalog.executable_statistics es
    on et.executable_id=es.executable_id 
        and et.execution_id=es.execution_id
inner join helper.ExecutionResult er 
    on es.execution_result=er.execution_result
where e.execution_id=23537        --Specified ExecutionID
    and es.execution_result=1       -- 1 (Failure)
    --and et.package_name=N'PackageName.dtsx'
order by et.package_name
    ,es.start_time desc;
View Code

 

附,helper 辅助表

关于helper 辅助表,请参考《SSISDB2:Operation》的“Appendix”

参考文档:

Views (Integration Services Catalog)

catalog.set_execution_parameter_value (SSISDB Database)          

SSIS Catalog

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: SSISDB
标签: SSISDB, 执行实例






本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/5160714.html,如需转载请自行联系原作者
目录
相关文章
|
8月前
通过patch-package创建补丁修改node_modules依赖下的源码
通过patch-package创建补丁修改node_modules依赖下的源码
113 0
|
8月前
|
Java
Java 包(package)编译执行过程(简单分析)
Java 包(package)编译执行过程(简单分析)
65 0
|
Unix
ROS学习-创建一个Package包
ROS学习-创建一个Package包
122 0
|
程序员 Android开发
使用 Eclipse 建立包的时候,“name”下可选项“Create package-info.java”的作用是什么?
使用 Eclipse 建立包的时候,“name”下可选项“Create package-info.java”的作用是什么?
使用 Eclipse 建立包的时候,“name”下可选项“Create package-info.java”的作用是什么?
|
开发工具 Android开发
使用外部包(package)
使用外部包(package)
139 0
|
IDE 开发工具 Python
如何调用别的.air脚本中封装好的方法
如何调用别的.air脚本中封装好的方法
291 0
|
Serverless 对象存储
Fun Package 功能介绍
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。
1725 0
|
Java
更新模板接口(alipay.pass.template.update)JAVA版本小样
官方接口文档:https://docs.open.alipay.com/199/105250/  接口描述:对于已经创建的模板,如果需要修改模板内容,可通过该接口修改,适用于修改模板内容。对于已经发布的模板,如果需要修改内容并同步到用户端,则应使用更新卡券接口 调用这个接口前,你肯定是先创建模板了的,  创建模板接口参考该帖:https://openclub.
502 0
|
Java
更新卡券接口(alipay.pass.instance.update)JAVA版本小样
官方接口文档:https://docs.open.alipay.com/199/105250/  发放卡券接口参考该贴:https://openclub.alipay.com/read.php?tid=2193&fid=8  使用场景介绍 对于已经发布的卡券,商户可通过此接口进行更新,更新卡券接口包含三大主要功能:核销卡券、失效卡券、更新卡券样式内容  核销卡券功能  核销卡券主要描述开发者如何将发放出去的卡券进行核销,使卡券在用户的支付宝客户端展示为已使用状态。
555 0
|
缓存
vs2015未能正确加载“ProviderPackage”包。
原文:vs2015未能正确加载“ProviderPackage”包。 出现以下错误的解决方案 --------------------------- Microsoft Visual Studio --------------------------- 未能正确加载“ProviderPackage”包。
3755 0