我正在查看SSIS DB项目目录,以查找从主程序包调用的每个SSIS程序包的开始和结束日期时间。有没有任何疑问来执行此操作?
看了[内部]。[执行]和SSISDB.catalog.operation_messages等
如果我有一个调用子包的主包,则运行此查询不起作用。
select start_time,end_time,*
from catalog.executions cc order by cc.start_time desc
我想找到每个儿童套餐的开始和结束时间。
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'