【问题标题】:List ReportServer parameters for Report that run more that some average execution time列出运行时间超过平均执行时间的 Report 的 ReportServer 参数
【发布时间】: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;

如何组合这段代码,可能就像一个存储过程来获取每个报告的平均值,并检查当报告超过平均值时使用了哪些参数。

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    这取决于您尝试对数据执行的操作以及您期望输出的外观。

    你可以做一些简单的事情,比如在参数列上交叉应用一个拆分函数。像这样的东西会给你按行拆分的参数。它可能不是您所需要的,但希望能为您指明正确的方向。

    SELECT TOP 100 
                   COUNT(*) TimesRun,
                   c.[Name] ReportName,
                   AVG(l.TimeDataRetrieval + l.TimeProcessing + l.TimeRendering) / 1000.0 [AverageExecutionTimeSeconds]            
                , p.[value] AS ParameterNameAndValue
        FROM [ReportServer].[dbo].[ExecutionLog](NOLOCK) AS l
            INNER JOIN [ReportServer].[dbo].[Catalog](NOLOCK) AS c ON l.ReportID = C.ItemID
            CROSS APPLY string_split(CAST(Parameters as varchar(max)),'&') p
        WHERE c.Type = 2 -- Only show reports 1=folder, 2=Report, 3=Resource, 4=Linked Report, 5=Data Source
        GROUP BY c.Name, p.[value]
        HAVING AVG(l.TimeDataRetrieval + l.TimeProcessing + l.TimeRendering) / 1000.0 > 1
        ORDER BY AVG(l.TimeDataRetrieval + l.TimeProcessing + l.TimeRendering) DESC
    

    您可以将其进一步拆分为参数名称和值,我不确定您真正需要什么。

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 2023-03-21
      • 2010-09-28
      • 2014-02-24
      相关资源
      最近更新 更多