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