2013-05-13 93 views
0

我想知道使用SSRS的最慢的软件包。我不知道在哪个表格中我可以找到每个包裹的持续时间。其实sysssislog存储包组件的开始/结束时间,但我不知道如何处理它。你能帮我找到合适的表,甚至是sql查询吗?使用SSRS的SSIS性能监控

回答

1

如果您启用了SQL Server日志记录,则dbo.sysssislog只会存储启动/停止时间。

如果你有,那么我会很懒惰,并开始在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 2013-05-14 10:46:26