SQL Server 2012 catalog.executions to sysjobhistory - jakikolwiek sposób, aby do nich dołączyć?

9

Wyczerpałem swoje zasoby i nie mogę znaleźć niezawodnego sposobu dołączenia do tabel ssisdb.catalog do zadań, które je uruchamiają. Próba napisania niestandardowych sproków do monitorowania moich czasów wykonania i wierszy zapisanych z tabel katalogu, a bardzo korzystne byłoby powiązanie ich z zadaniem wywołującym.

Próbuję dowiedzieć się, czy istnieją tabele, których można użyć, aby dołączyć tabelę catalog.executions do msdb.sysjobhistory. Muszę ustalić, które zadanie o nazwie pakiet SSIS, a następnie użyć danych w wykonaniach do mojej analizy.

Cate Donoghue
źródło

Odpowiedzi:

5

W żadnym wypadku nie. Ale mam jakiś sposób:

Jest przeznaczony tylko do przypadku w tabeli komunikatów sysjobhistory, pojawia się ciąg:

„Identyfikator wykonania: xxxxxxx”.

W poniższym zapytaniu w ostatniej kolumnie wypakowuję ExecutionId.

W przypadku, gdy ExecutionId ma wartość, może dołączyć:

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

Pamiętaj, że możesz również dołączyć te tabele:

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 
Refael
źródło
2

Aktualizacja: Krótka odpowiedź brzmi: NIE ma sposobu na dołączenie tabel ssisdb.catalog do zadań, które je uruchamiają. W tych artykułach Jamie Thomson jest kilka dobrych informacji :

Myślę, że to, co próbujesz zrobić, jest już zrobione przez Jamiego. Sprawdź sp_ssis_catalog, aby zobaczyć, czy spełnia twoje potrzeby, czy nie.

Nie znalazłem sposobu, aby dołączyć tabele ssisdb.catalog do zadań, które je uruchamiają. Aby uzyskać wgląd w nazwę stanowiska, możesz zapoznać się z poniższymi informacjami:

Raport o błędzie SSIS E-mail od Clarka Bakera

Kin Shah
źródło
0

Krótka odpowiedź brzmi TAK

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
Mark Morrow
źródło