[英]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.