SQL Server 2012 catalog.executions to sysjobhistory - 有什么办法可以加入它们吗?

Cat*_*hue 9 sql-server ssis sql-server-2012

我已经用尽了我的资源,但找不到将 ssisdb.catalog 表加入到运行它们的作业的万无一失的方法。尝试编写一些自定义 sproc 来监视我的执行时间和从目录表中写入的行,并且能够将它们与调用作业联系在一起将非常有益。

我试图找出是否有任何表可用于将 catalog.executions 表连接到 msdb.sysjobhistory。我需要关联哪个作业称为 SSIS 包,然后使用执行中的数据进行分析。

Ref*_*ael 5

不适用于任何情况。但我有一些办法:

它仅针对消息表 sysjobhistory 中的情况而设计,出现字符串:

“执行 ID:xxxxxxx”。

在以下查询中,我在最后一列中提取了 ExecutionId。

在 ExecutionId 有值的情况下,它可以加入:

SELECT * 
FROM (
    SELECT 
        h.step_name,  
        h.message, 
        h.run_status, 
        h.run_date, 
        h.run_time, 
        SUBSTRING(h.message, NULLIF(CHARINDEX('Execution ID: ', h.message),0)+14 ,PATINDEX('%[^0-9]%',SUBSTRING(h.message, NULLIF(CHARINDEX('Execution ID: ', h.message),0)+14 ,20))-1) ExecutionId
    FROM MSDB.DBO.SYSJOBHISTORY h) history
LEFT JOIN 
SSISDB.CATALOG.EXECUTIONS ex on ex.execution_id = history.ExecutionId
Run Code Online (Sandbox Code Playgroud)

请注意,还可以附加这些表:

LEFT JOIN SSISDB.CATALOG.OPERATION_MESSAGES om on history.ExecutionId = om.operation_id
LEFT JOIN SSISDB.CATALOG.EVENT_MESSAGES em on em.operation_id =history.ExecutionId 
Run Code Online (Sandbox Code Playgroud)


Kin*_*hah 2

更新:简短的答案是:没有办法将 ssisdb.catalog 表连接到运行它们的作业。Jamie Thomson的这些文章提供了一些很好的信息:

\n\n\n\n

我想,杰米已经在做你想做的事情了。请参阅 sp_ssis_catalog 以查看它是否满足您的需求。

\n\n

我没有找到将 ssisdb.catalog 表连接到运行它们的作业的方法。您可以参考以下内容了解职位名称:

\n\n

Clark Ba​​ker 发送的SSIS 错误报告电子邮件

\n