簡體   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