2013-05-13 4 views
0

Я хочу знать самые медленные пакеты с использованием SSRS. Я не знаю, в какой таблице я могу найти продолжительность каждого пакета. Фактически sysssislog хранит время начала и окончания компонентов пакета, но я не знаю, как я могу с ним справиться. Не могли бы вы помочь мне найти подходящую таблицу или даже SQL-запрос?Мониторинг производительности SSIS с использованием SSRS

ответ

1

dbo.sysssislog будет хранить только время начала/остановки, если вы включили ведение журнала SQL Server.

Если у вас есть, то я был бы ленив и начинал с некоторых запросов, построенных в SSIS Performance Framework. Они были построены на 2005 год, поэтому вам нужно будет изменить ссылки с sysdtslog90 на sysssislog. Кроме того, если вы выполняете эти запросы, вам нужно будет регистрировать больше событий, которые только начинают/останавливаются, но основная логика звучит.

Если вам просто нужно простое и простое, вы должны написать такой запрос, чтобы начать.

WITH STARTS AS 
(
    -- Find the execution ids for all the start events 
    SELECT 
     S.executionid 
    , S.starttime 
    , S.source 
    FROM 
     dbo.sysssislog AS S 
    WHERE 
     S.event = 'PackageStart' 
) 
, STOPS AS 
(
    -- Find the execution ids for all the start events 
    SELECT 
     S.executionid 
    , S.starttime 
    , S.source 
    FROM 
     dbo.sysssislog AS S 
    WHERE 
     S.event = 'PackageEnd' 
) 
SELECT 
    A.source AS PackageName 
, A.starttime AS StartTime 
, COALESCE(B.starttime, CURRENT_TIMESTAMP) AS PackageEndTime 
, DATEDIFF(mi, a.starttime, COALESCE(B.starttime, CURRENT_TIMESTAMP)) AS PackageDuration_M 
FROM 
    STARTS A 
    -- Lots of reasons there may not be an end time 
    LEFT OUTER JOIN 
    STOPS B 
     ON A.executionid = B.executionid; 
+0

thanx много! вы помогли мне решить мою проблему как обычно – unknown

Смежные вопросы