Дата начала и окончания в дочерних пакетах ssis

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

После просмотра [internal].[executions] и SSISDB.catalog.operation_messages и т. д.

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

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

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
662
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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'

Какие дубликаты вы получаете? Я запустил это перед публикацией, и проблем не было. Являются ли дубликаты, которые вы видите, строками для всех казней? Вы можете использовать столбец EXECUTION_ID для проверки конкретного экземпляра выполнения или самого последнего экземпляра с MAX (EXECUTION_ID).

userfl89 09.04.2019 18:10

возможно, с минимальным и максимальным значением, кажется, работает лучше, ВЫБЕРИТЕ ex.execution_id, E.PACKAGE_NAME, min (Es.start_time) AS PackageStartTime, max (Es.end_time) AS PackageEndTime FROM SSISDB.CATALOG.EXECUTIONS EX INNER JOIN SSISDB. CATALOG.EXECUTABLES E на EX.EXECUTION_ID = E.EXECUTION_ID INNER JOIN SSISDB.CATALOG.EXECUTABLE_STATISTICS ES на E.EXECUTABLE_ID = ES.EXECUTABLE_ID --PACKAGE_NAME- родительский пакет WHERE E.PACKAGE_NAME = '' группа ex.execution_id, e.package_name порядок по ex.execution_id, e.package_name

user11156893 09.04.2019 20:29

Без каких-либо фильтров для конкретных экземпляров выполнения (EXECUTION_ID) запрос будет возвращать строки для всех исполнений. Под MAX(EXECUTION_ID) для самого последнего я имел в виду использовать это как фильтр в предложении WHERE, например zappysys.com/blog/…

userfl89 09.04.2019 22:53

вам нужно добавить это при последнем соединении И EX.EXECUTION_ID = ES.EXECUTION_ID

user11156893 10.04.2019 07:04

@JoeSmith, это правильно, я, должно быть, пропустил это, когда публиковал это. Моя ошибка, но хороший улов. Я добавил эту часть в свой ответ, однако, пожалуйста, не отмечайте ее как принятую, поскольку изначально она была пропущена, и вы упомянули об этом.

userfl89 10.04.2019 15:20

спасибо, не стесняйтесь пересматривать ответ, в моем ответе есть min() и max(), и по какой-то причине я не думаю, что это эффективно или так, как задумано Microsoft

user11156893 10.04.2019 18:39

Другие вопросы по теме