Время начала и окончания даты в дочерних пакетах ssis - PullRequest
3 голосов
/ 09 апреля 2019

Я просматриваю каталог проектов БД SSIS, чтобы найти дату начала и окончания для каждого пакета SSIS, вызываемого из мастер-пакета.Есть ли какой-либо запрос для выполнения этого?

После просмотра [внутренних]. [Казни] и SSISDB.catalog.operation_messages и т. Д.

Выполнение этого запроса не работает, если я естьглавный пакет, называемый дочерними пакетами.

select start_time,end_time,*
from catalog.executions cc order by cc.start_time desc

Я пытаюсь найти время начала и окончания для каждого дочернего пакета.

1 Ответ

4 голосов
/ 09 апреля 2019

CATALOG.EXECUTABLE_STATISTICS DMV регистрирует статистику выполнения для компонентов в пакете, включая задачи выполнения пакета. В столбцах START_TIME и END_TIME хранится время, когда компонент начал и завершил выполнение. Столбец EXECUTION_DURATION содержит время выполнения исполняемого файла, в данном случае дочерних пакетов, в миллисекундах. Это, конечно, можно преобразовать в секунды, минуты и т. Д. В зависимости от того, что вам нужно. Хотя здесь есть столбец для пути выполнения компонента в родительском пакете, в нем нет столбца для прямого имени компонента, поэтому CATALOG.EXECUTABLES включено для EXECUTABLE_NAME, и этот DMV можно опустить, если вам нужно только просмотреть путь выполнения (EXECUTION_PATH столбец). В CATALOG.EXECUTIONS есть столбцы для папки и имени проекта, и вы можете присоединиться к ним, чтобы применить фильтры для конкретного проекта и папки, в которой находится пакет. Вы также можете применить фильтр к столбцу EXECUTION_ID, чтобы только просматривать подробности. для конкретного исполнения. Выполнение пакета на базовом уровне ведения журнала с возможностью регистрации деталей выполнения для компонентов.

SELECT 
    EX.FOLDER_NAME,
    EX.PROJECT_NAME,
    E.EXECUTABLE_NAME,
    EX.PACKAGE_NAME,
    ES.START_TIME AS ComponentStartTime,
    ES.END_TIME AS ComponentEndTime,
    EX.start_time AS PackageStartTime,
    EX.end_time AS PackageEndTime,
    ES.EXECUTION_DURATION AS ComponentExecutionTimeInMilliseconds
FROM SSISDB.CATALOG.EXECUTIONS EX 
INNER JOIN SSISDB.CATALOG.EXECUTABLES E on EX.EXECUTION_ID = E.EXECUTION_ID
INNER JOIN SSISDB.CATALOG.EXECUTABLE_STATISTICS ES on E.EXECUTABLE_ID = ES.EXECUTABLE_ID AND EX.EXECUTION_ID = ES.EXECUTION_ID
--PACKAGE_NAME- parent package
WHERE E.PACKAGE_NAME = 'Package Name.dtsx' AND EX.PROJECT_NAME = 'Project Name' 
AND EX.FOLDER_NAME = 'Folder Name'
...