sysjobhistory에 대한 SQL Server 2012 catalog.executions-결합 할 수있는 방법이 있습니까?


9

리소스를 모두 사용했고 ssisdb.catalog 테이블을 실행하는 작업에 조인 할 수있는 완벽한 방법을 찾을 수 없습니다. 카탈로그 테이블에서 작성된 실행 시간과 행을 모니터링하기 위해 일부 사용자 정의 sproc을 작성하려고 시도하면 호출 작업과 함께 묶을 수있는 것이 매우 유리합니다.

catalog.executions 테이블을 msdb.sysjobhistory에 조인하는 데 사용할 수있는 테이블이 있는지 확인하려고합니다. SSIS 패키지라는 작업을 관련시킨 다음 분석을 위해 데이터를 실행에 사용해야합니다.

답변:


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

다음 표를 첨부 할 수도 있습니다.

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 

2

업데이트 : 짧은 대답은 다음과 같습니다. ssisdb.catalog 테이블을 실행하는 작업에 조인하는 방법 이 없습니다 . 이 기사에는 Jamie Thomson의 유용한 정보가 있습니다 .

당신이하려는 것은 이미 Jamie에 의해 수행되고있는 것 같습니다. sp_ssis_catalog를 참조하여 필요에 맞는지 확인하십시오.

ssisdb.catalog 테이블을 실행하는 작업에 조인하는 방법을 찾지 못했습니다. 작업 이름을 얻는 데 대한 통찰력을 얻으려면 다음을 참조하십시오.

Clark Baker의 SSIS 오류 보고서 이메일


0

짧은 대답은 예입니다

SELECT TOP 200
M.[Message_time],
(SELECT TOP 1 Name from MSDB.dbo.SysJobs J INNER JOIN MSDB.dbo.SysJobSteps S (NOLOCK) ON 
        J.Job_ID = S.Job_ID WHERE S.Command like '%' +  M.[Package_Name] + '%') as Job_Name,
M.[Package_Name],
M.[Execution_path],
M.[Subcomponent_name],
M.[Message]
FROM SSISDB.[catalog].[Event_messages] M (NOLOCK)    
WHERE Event_name = 'OnError'
ORDER BY Message_time DESC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.