【发布时间】:2020-06-18 19:34:13
【问题描述】:
我正在尝试从 ReportServer.dbo.Catalog 表中获取运行时间超过平均执行时间的报告的报告参数。到目前为止,我可以计算 min.max,avg 执行时间,但我希望检查运行时间超过平均时间的报告参数。
SELECT TOP 100
COUNT(*) TimesRun,
c.[Name] ReportName,
AVG(l.TimeDataRetrieval + l.TimeProcessing + l.TimeRendering) / 1000.0 [AverageExecutionTimeSeconds]
FROM [ReportServer].[dbo].[ExecutionLog](NOLOCK) AS l
INNER JOIN [ReportServer].[dbo].[Catalog](NOLOCK) AS c ON l.ReportID = C.ItemID
WHERE c.Type = 2 -- Only show reports 1=folder, 2=Report, 3=Resource, 4=Linked Report, 5=Data Source
GROUP BY c.Name
HAVING AVG(l.TimeDataRetrieval + l.TimeProcessing + l.TimeRendering) / 1000.0 > 1
ORDER BY AVG(l.TimeDataRetrieval + l.TimeProcessing + l.TimeRendering) DESC;
如何组合这段代码,可能就像一个存储过程来获取每个报告的平均值,并检查当报告超过平均值时使用了哪些参数。
【问题讨论】: