【转】分析Reporting Service的报表执行记录
【转自https://blog.csdn.net/u012988208/article/details/46810411】
有的时候我们需要追溯报表的执行历史,比如用户A在什么时候运行了某张报表,报表运行的时长、次数、以及当时输入的参数。
Reporting Service的系统表其实保留了每一次报表运行的历史记录,我们可以很方便地进行分析。
-
--查看运行记录
-
SELECT el.*
-
FROM dbo. Catalog c
-
LEFT JOIN dbo.Catalog sc ON ISNULL(c .LinkSourceID, c.ItemId )=sc. ItemId
-
INNER JOIN dbo.SecData sd ON sd. PolicyId = c .PolicyId
-
INNER JOIN dbo.ExecutionLog el ON el. ReportId = c .ItemId
-
WHERE c. Name='Order Book and Backlog Report'--此处设置报表名称
-
and el.TimeStart>'2014-01-01'--此处设置时间区间
字段名非常容易理解,就不一一作解释了。可以根据实际业务情况,做出相应的分析仪表盘。
Catalog表是所有用到的对象,包括原报告文件、文件夹、链接报告等等。稍作修改便可以导出报表的清单。
-
--报表清单
-
SELECT
-
CL.ItemID ,CL. Name,CL .Path, CL.Description ,CL. CreationDate,CL .ModifiedDate, CL.PolicyID ,CL. ExecutionFlag,CL .ExecutionTime, CL.ParentID ,CL. Hidden
-
,PCL. Path AS Parent,CU .UserName AS CreatedBy,MU .UserName AS ModifiedBy
-
,CASE CL .Type WHEN 1 THEN 'Folder' WHEN 2 THEN 'Report' WHEN 3 THEN 'Crystal Reports' WHEN 4 THEN 'Link Report' WHEN 5 THEN 'DataSource' END AS Type
-
FROM CATALOG CL
-
LEFT JOIN CATALOG PCL ON CL. ParentID=PCL .ItemID
-
LEFT JOIN USERS CU ON CL .CreatedByID= CU.UserID
-
inner JOIN USERS MU ON CL .ModifiedByID= MU.UserID
-
WHERE 1= 1
-
AND CL. ParentID=@p_ItemID
-
ORDER BY CL.Type
字段名非常容易理解,就不一一作解释了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」