SSIS 2012 - 如何在T-SQL中查询当前运行的包?

BI *_*ude 5 t-sql ssis sql-server-2012

我想知道系统中当前正在运行的软件包.

目前,我可以通过在Integration Services中打开内置报告来查找正在运行的包.

我想知道幕后的查询是什么?

更多细节:我使用Project部署模型

Kyl*_*ale 13

如果您正在使用IS目录来管理程序包,则可以针对目录数据库检查使用此查询运行的程序包(默认为SSISDB):

select * from catalog.executions where status = 2
Run Code Online (Sandbox Code Playgroud)

更新: 要查看调用给定执行的所有包:

select distinct execution_path from internal.event_messages where operation_id = @executionID
Run Code Online (Sandbox Code Playgroud)

  • 是的,因为父包正在运行.它恰好正在运行一个正在运行另一个包的进程.除非您将该子包作为单独的进程启动,否则它不会在`catalog.executions`中有条目.最好的方法是查看operation_messages表中与子包相关的活动 (3认同)

bil*_*nkc 6

AS N West引用,您感兴趣的表是catalog.executions具体的,您对任何具有NULL的内容感兴趣end_time

-- Just the basics of what is running
SELECT 
    *
FROM
    catalog.executions AS E
WHERE
    E.end_time IS NULL
Run Code Online (Sandbox Code Playgroud)

这个视图很好,因为你可以看到包,项目和它正在执行的文件夹,因为我们有很多相同的命名包 - MasterFacts,MasterDimensions等,它们存在于不同的项目中.

如果你想将执行绑定到文件夹/项目/包结构,因为你感兴趣的元数据(包的哪个版本正在运行),那么你可以使用这样的查询来链接它们.

SELECT
    E.execution_id
,   E.folder_name
,   E.project_name
,   E.package_name
,   E.reference_id
,   E.reference_type
,   E.environment_folder_name
,   E.environment_name
,   E.project_lsn
,   E.executed_as_sid
,   E.executed_as_name
,   E.use32bitruntime
,   E.operation_type
,   E.created_time
,   E.object_type
,   E.object_id
,   E.status
,   E.start_time
,   E.end_time
,   E.caller_sid
,   E.caller_name
,   E.process_id
,   E.stopped_by_sid
,   E.stopped_by_name
,   E.dump_id
,   E.server_name
,   E.machine_name
,   E.total_physical_memory_kb
,   E.available_physical_memory_kb
,   E.total_page_file_kb
,   E.available_page_file_kb
,   E.cpu_count
,   F.folder_id
,   F.name
,   F.description
,   F.created_by_sid
,   F.created_by_name
,   F.created_time
,   P.project_id
,   P.folder_id
,   P.name
,   P.description
,   P.project_format_version
,   P.deployed_by_sid
,   P.deployed_by_name
,   P.last_deployed_time
,   P.created_time
,   P.object_version_lsn
,   P.validation_status
,   P.last_validation_time
,   PKG.package_id
,   PKG.name
,   PKG.package_guid
,   PKG.description
,   PKG.package_format_version
,   PKG.version_major
,   PKG.version_minor
,   PKG.version_build
,   PKG.version_comments
,   PKG.version_guid
,   PKG.project_id
,   PKG.entry_point
,   PKG.validation_status
,   PKG.last_validation_time
FROM
    catalog.executions AS E
    INNER JOIN
        ssisdb.catalog.folders AS F
        ON F.name = E.folder_name
    INNER JOIN 
        SSISDB.catalog.projects AS P
        ON P.folder_id = F.folder_id
        AND P.name = E.project_name
    INNER JOIN
        SSISDB.catalog.packages AS PKG
        ON PKG.project_id = P.project_id
        AND PKG.name = E.package_name;
Run Code Online (Sandbox Code Playgroud)