繁体   English   中英

SSRS 如何获取订阅的运行时日志?

[英]SSRS How to get runtime log for subscription?

我需要获取订阅的运行时日志。

我需要知道在一段时间内订阅被调用了多少次以及运行了多长时间,从 Pending 到 Success 或 Failed 状态。

我试图从 msdb.dbo 所有作业表中获取信息,但运行时有一些不同。

任何帮助将不胜感激。

这是一个开始..它不会给你你想要的一切..但肯定足以让你开始

SELECT
sj.[name] AS [Job Name],
rs.SubscriptionID,
c.[Name] AS [Report Name],
c.[Path],
su.Description,
su.EventType,
su.LastStatus,
su.LastRunTime


FROM msdb..sysjobs AS sj 

INNER JOIN ReportServer..ReportSchedule AS rs
ON sj.[name] = CAST(rs.ScheduleID AS NVARCHAR(128)) 

INNER JOIN ReportServer..Subscriptions AS su
ON rs.SubscriptionID = su.SubscriptionID

INNER JOIN ReportServer..[Catalog] c
ON su.Report_OID = c.ItemID

感谢您的回答。 我做了检查。

SELECT sj.name,
        sh.run_date,
        sh.step_name,
        sh.run_duration
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobhistory sh
ON sj.job_id = sh.job_id WHERE name = 'examplejobName' 

`

这提供了作业运行时间,但不是状态 Pending 和 Failing 或 Success 之间的实时。

我已经检查了此特定订阅的作业,所有步骤都已完成,但订阅仍处于待处理状态。 这基本上是我需要的时间,因为订阅被调用直到成功(email 或文件被复制)或失败

我将不胜感激任何其他建议。

此致。

SSRS ReportServer帮助我们查找有关报告执行和其他详细信息的详细信息。 所以我们可以使用下面的查询来找出下面的答案;

- 订阅被调用了多少次?

- 跑了多长时间?

SELECT TMP_TBL.*,sc.LastStatus,sc.LastRunTime FROM (
select  ROW_NUMBER() OVER(ORDER BY TimeEnd DESC) AS Rw_Nr,CASE(RequestType) 
        WHEN 0 THEN 'Interactive'
        WHEN 1 THEN 'Subscription'
        WHEN 2 THEN 'Refresh Cache'
        ELSE 'Unknown'
        END AS RequestType ,DATEDIFF(second,TimeStart,TimeEnd) AS Execution_Time ,Status ,UserName ,Format ,c.ItemID
FROM ExecutionLogStorage EL WITH(NOLOCK)
LEFT  JOIN Catalog C WITH(NOLOCK) ON (EL.ReportID = C.ItemID)
where RequestType=1
-- AND el.TimeEnd BETWEEN @BegTime AND @EndTime
) AS TMP_TBL LEFT JOIN Subscriptions sc ON sc.Report_OID = TMP_TBL.ItemID and TMP_TBL.Rw_Nr=1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM