查找并停用未使用的 .rdl 报表

适用于: Power BI 报表生成器 Power BI Desktop Power BI 2022 报表服务器 SQL Server 2022 Reporting Services

贵公司可能会在 Power BI 报表服务器和 SQL Server Reporting Services (SSRS) 中处理数百个分页报表(.rdl 文件)。 其中一些报表可能已过时,需要将其停用。 作为报表作者或管理员,你不希望将未使用的报表迁移到 Power BI 服务。 在计划迁移到云时,建议执行一些清理工作来清除未使用的 .rdl 报表。 此最佳做法支持保留治理,并允许组织使用保留计划和数据策略。

检查未使用的报告需完成两个过程。 我们将清理范围扩展至包含未使用的对象,并清除可能包含过时数据的未使用的数据库表。

运行审核(可选)

首先,建议创建服务器审核规范和数据库审核规范。 审核 SQL Server 数据库引擎或单个数据库的实例涉及到跟踪和记录数据库引擎中发生的事件。 通过SQL Server 审核,您可以创建服务器审核,其中可以包含针对服务器级别事件的服务器审核规范和针对数据库级别事件的数据库审核规范。 可将审核的事件写入事件日志或审核文件。

使用用于报表的表和存储过程填充审核日志后,可以将这些对象导出到 Excel 文件并与利益干系人共享。 让他们知道你正准备弃用未使用的对象。

备注

一些重要报表可能很少运行,因此请务必就不常使用的数据库对象征求反馈。 弃用对象时,可通过在该对象名称前面添加“zdel”来更改其名称,从而使该对象的位置下降到对象资源管理器的底部。 这样一来,如果你之后需要该 zdel 对象,则可以将其名称更改回原始名称。 当你知道自己已准备好从数据库中移除未使用的对象后,可创建一个节奏来删除它们。

创建报表使用指标列表

其次,需要通过查询报表服务器 DB 来创建 .rdl 报表使用指标列表。 使用下面的 T-SQL 派生使用计数。 如果报表服务器配置为存储一年内的报表执行历史记录,你可以使用特定日期来筛选使用指标。


; with UnusedReportsCte 
AS 
( 
SELECT 
Cat.Name,Path,COUNT(ExeLog.TimeStart) AS Cnt 

FROM (SELECT * FROM Catalog 
WHERE type=2 and Hidden=0) AS Cat 
LEFT JOIN 
ExecutionLog AS ExeLog 
ON ExeLog.ReportID = Cat.ItemID 
AND ExeLog.TimeStart>'01/01/2021' 
GROUP BY Cat.Name,Path) 
SELECT * FROM UnusedReportsCte 
ORDER BY Cnt ASC,path 

备注

如果执行了父报表,则子报表和链接报表不会显示在执行日志中。

在这里,你可以决定是立即删除未使用的报表,还是将报表替换为一条消息。 你可以让你的用户知道该报表不可再使用,以便他们可以联系管理员获取支持。 然后,可以制定一个节奏,以便在一段时间内删除它们。