SSRS Reports Run
Overview
SSRS Reports Run shows the last twenty four hours on a report server as a timeline. Each bar is one execution, its width is how long that execution took, its colour is how it ended, and its lane is the report it belongs to.

Three things are visible here that a count per hour cannot express:
- The subscription burst. Forty reports firing inside the same two minutes, contending for the same data sources.
- Overlap. Which long report was still running when the one that aborted was rendering.
- Cache. A lane that is mostly pale was served without touching a data source, so its run count is not costing the database what it looks like.
What this replaces
The previous version drew twenty four identical columns counting executions per hour, above an eleven column grid whose headers were the raw SQL column names and whose values were the raw SQL values. Durations were bare millisecond integers, sizes were bare byte counts, and the outcome of a run was the string rsProcessingAborted.
Finding that a report had failed after fifty eight seconds, almost all of it in rendering, meant reading a status code and dividing 55400 by a thousand in your head.
The hourly count survives as the Ribbon view, now split by whether an hour was people or a schedule.
Where to find it
Only shown for a database holding a Reporting Services catalog.
- Tree: expand the report server database, then Real Time > SSRS > Reports Run.
- Overview: click the Reports run, last 24 hours panel on the report server database’s overview page.
Requirements
- A Reporting Services catalog database. The report is offered when
dbo.ExecutionLoganddbo.Catalogboth exist. SELECTondbo.ExecutionLoganddbo.Catalog.dbo.ExecutionLog3is used when the report server has it, SSRS 2008 R2 and newer.
The two views
Timeline

Lanes down the side, twenty four hours across the top. A lane is a report; reports past the twelfth busiest are collected into one other reports lane at the bottom, so an execution that happened is always somewhere on the chart.
Colour is outcome:
| Colour | Meaning |
|---|---|
| Green | Succeeded |
| Amber | Aborted or cancelled, usually a timeout or a reader navigating away |
| Red | Failed |
| Pale blue | Succeeded and was served from cache, a snapshot or report history |
Lanes are ordered by how much of the window each report occupied, not by run count, because the lane worth putting at the top is the one that was busy rather than the one that was frequent.
The tinted column behind the lanes is the busiest hour of the window.
Ribbon
The hourly counts, with subscriptions sitting on the baseline and interactive runs stacked above them. Failures are marked as a separate bar floating above the column rather than being a segment of it, because one failure in nine hundred runs would round away as a share and one failure is the thing worth seeing.
Click an hour to filter the grid to it. Click it again, or press Show all hours, to clear.
Reading the grid

| Column | What it holds |
|---|---|
| Started | When the execution began |
| Report / Path | The catalog item and its folder |
| User | The account the run was attributed to |
| Where the time went | The three phase split, scaled against the longest run on the page |
| Duration | Retrieval plus processing plus rendering, with units |
| Source | Live, Cache, Snapshot, History, AdHoc, Session or Rdce |
| Kind | Interactive or Subscription |
| Format | PDF, EXCEL, HTML5, CSV and so on |
| Rows | Rows returned by the report’s datasets |
| Size | Bytes of output produced |
| Outcome | Succeeded, Aborted or Failed, as a pill rather than an rs code |
A succeeded run’s outcome is drawn quietly on purpose. Colouring nine hundred rows green leaves nothing to notice the one that did not work.
What is counted
Executions started in the last twenty four hours, for catalog items of type 2, which is reports.
The chart draws at most the most recent 4,000 executions. Past that the timeline is a solid block and every bar is a rectangle being hit tested on every mouse move. The grid still holds every row returned, and the line under the headline says when the cap was reached.
Actions
- Click a bar to select that execution’s row in the grid, and the other way round.
- Double click to open SSRS Report Speed, which holds the averages these individual runs add up to.
- Right click a row for the speed page, the users page, or to copy the report path.
- Right click the chart to copy it to the clipboard.
Where the data comes from
dbo.ExecutionLog3 when available, otherwise dbo.ExecutionLog, joined to dbo.Catalog.
Source and RequestType are integers on the original view and readable strings on the newer one. They are decoded to the same words either way, so the grid reads the same on every version.
The window is fixed at twenty four hours back from now rather than taken from the rows, so an idle stretch at either end is drawn as idle rather than cropped off the axis.
Messages you may see
No report ran on this report server in the last twenty four hours. Either a genuinely quiet day, or the execution log was recently emptied. Reconfiguring Reporting Services clears it, which makes a busy server look brand new.
The execution log query did not finish in time. A report server that logs a very large number of executions per day can take a while to read. Press F5 to try again.
Related reports
- SSRS Report Speed – the averages behind these runs
- SSRS Report Users – who is running them
- SSRS Overview – the report server database’s overview panels
Frequently asked questions
Why are some bars pale blue? They were served from cache, a snapshot or report history. The report server did not run the report’s datasets, so those executions cost the database nothing.
Why is one lane called “other reports”? The timeline draws lanes for the twelve reports that occupied the most of the window and collects the rest into one lane, so nothing is dropped without being counted.
An execution shows a duration but no rows and no size. That is the shape of an aborted or failed run: it spent time and produced nothing.