【转】分析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
字段名非常容易理解,就不一一作解释了。

浙公网安备 33010602011771号