PowerBI Report Schedule Management

2023-03-23

說明如何管理 SQL Server Agenet 來自 Power BI Report Server 排程的 Jobs。

logo

說明

使用以下查詢,從 SQL Server Agent 的 Job ID 找到對應的 Power BI Report 從而進行管理,並判斷是否需要刪除。

SELECT  c.Name, c.Path,R.*, S.*
  FROM [PowerBIReportServer].[dbo].[ReportSchedule] as R
  Inner join [PowerBIReportServer].[dbo].[Subscriptions] as S
  ON r.SubscriptionID = s.SubscriptionID
  Inner join [PowerBIReportServer].[dbo].[Catalog] as C
  ON r.ReportID = c.ItemID

常見的狀況是 Name 與 Path 多筆相同的資料,表示使用者為一張報表設定了多個排程,這時候就需要判斷是否需要刪除多餘的排程或是使用共用排程來減少不必要的 Job。

一旦確認要刪除的排程後,使用 Power BI Report Server 的網頁介面對排程進行刪除,就會自動刪除 SQL Server Agent 的 Job 😊


查詢各排程分別有多少報表在使用,方便找出孤兒排程報表進行整合。

SELECT 
    sch.ScheduleID,
    sch.Name AS [排程名稱/ID],
    sch.NextRunTime AS [下次執行時間],
    COUNT(DISTINCT rs.ReportID) AS [關聯報表數]
FROM 
    Schedule sch
LEFT JOIN 
    ReportSchedule rs ON sch.ScheduleID = rs.ScheduleID
GROUP BY 
    sch.ScheduleID,
    sch.Name,
    sch.Type,
    sch.NextRunTime
ORDER BY 
    [關聯報表數] DESC,
    sch.NextRunTime ASC;