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

Sql server SSRS如何获取订阅的运行时日志?,sql-server,reporting-services,subscription,Sql Server,Reporting Services,Subscription,我需要获取订阅的运行时日志 我需要知道在一段时间内,订阅被调用了多少次,运行了多长时间,从挂起状态到成功或失败状态 我试图从msdb.dbo所有作业表中获取信息,但运行时有一些不同 任何帮助都将不胜感激 这是一个开始。。它不能给你想要的一切。。但肯定足以让你开始 SELECT sj.[name] AS [Job Name], rs.SubscriptionID, c.[Name] AS [Report Name], c.[Path], su.Description, su.EventType,

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

我需要知道在一段时间内,订阅被调用了多少次,运行了多长时间,从挂起状态到成功或失败状态

我试图从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

SSRSReportServer帮助我们查找有关报告执行的详细信息和其他详细信息。因此,我们可以使用以下查询来找出以下问题的答案:

-订阅被调用了多少次

-跑了多长时间

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

谢谢你,埃萨特。ExecutionLogStorage表的唯一问题是无法通过ReportID识别哪个订阅占用了更多的执行时间。还有其他想法吗?执行时间栏可能会对你有所帮助。如果没有帮助,请让我知道。很抱歉,如果我之前的评论不够清楚,我需要以某种方式将ExecutionLogStorage(如果是订阅)上的报告id与订阅表链接