Report execution time
This query (for execution in the ReportServer database) returns reports run in the last week with a total execution time exceeding one second:
WITH el AS ( SELECT ReportID , TimeStart AS Requested , CAST(TimeDataRetrieval AS FLOAT)/1000 AS TimeDataRetrieval , CAST(TimeProcessing AS FLOAT)/1000 AS TimeProcessing , CAST(TimeRendering AS FLOAT)/1000 AS TimeRendering , CAST(TimeDataRetrieval + TimeProcessing + TimeRendering AS FLOAT)/1000 AS ExecutionTime FROM dbo.ExecutionLogStorage ) SELECT c.Name , el.Requested , el.TimeDataRetrieval , el.TimeProcessing , el.TimeRendering , el.ExecutionTime , ROUND(100 * el.TimeDataRetrieval/el.ExecutionTime, 1) AS PercentSQL , ROUND(100 * (el.TimeProcessing + el.TimeRendering) / el.ExecutionTime, 1) AS PercentSSRS FROM el INNER JOIN dbo.[Catalog] c ON el.ReportID = c.ItemID WHERE el.ExecutionTime > 1 -- more than 1 second AND el.Requested > GETDATE() - 7 -- in the last week ORDER BY el.ExecutionTime DESC -- worst offenders first