Query SSRS Report Execution Log

This SQL query retrieves detailed execution logs from the ExecutionLog3 view in the SSRS ReportServer database. It shows when reports were run, who ran them, how long each phase (data retrieval, processing, rendering) took, the output format, execution status, and the size of the report output. It’s useful for monitoring report usage, performance, and troubleshooting issues with scheduled or interactive report runs.

You can customize it further by filtering for specific reports, users, or time ranges.

SELECT 
    InstanceName AS ReportServerInstance,
    ItemPath AS ReportPath,
    UserName AS ExecutedBy,
    RequestType,
    Format AS OutputFormat,
    TimeStart AS ExecutionStartTime,
    TimeEnd AS ExecutionEndTime,
    TimeDataRetrieval AS DataRetrievalTimeMs,
    TimeProcessing AS ProcessingTimeMs,
    TimeRendering AS RenderingTimeMs,
    Status,
    ByteCount AS ReportSizeBytes,
    [RowCount] AS RowsReturned
FROM 
    ExecutionLog3
ORDER BY 
    TimeStart DESC;
3 Likes

Hi Richard, this is neat! Ignorant question for you: How did you find the SSRS ReportServer database and figure out the name of the execution log? When I try to run the query, I get an invalid object name error for “ExecutionLog3.” I thought I’d try to look in Management Studio for the ReportServer database and get more information, but our listed databases in Management Studio don’t include ReportServer, or anything that looks like it resembles it.

Most likely, this means that the report server is on another database. This is common because SSRS creates a LOT of SQL jobs that can clutter things up a bit in your “main” database. You might find some hints from viewing this setting.