我想知道使用 SSRS 最慢的包。我不知道在哪个表中可以找到每个包裹的持续时间。实际上 sysssislog 存储包组件的开始/结束时间,但我不知道如何处理它。你能帮我找到合适的表,甚至是要使用的 sql 查询吗?
问问题
329 次
1 回答
1
如果您启用了 SQL Server 日志记录,dbo.sysssislog 只会存储开始/停止时间。
如果你有,那么我会很懒惰,从SSIS 性能框架中构建的一些查询开始。它们是为 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;
于 2013-05-13T18:08:05.440 回答