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.

The SSRS Reports Run timeline: one lane per report over twenty four hours
The tinted column is the busiest hour. Five reports overlapping inside a few seconds at six in the morning is a subscription schedule, and it looks like one.

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.ExecutionLog and dbo.Catalog both exist.
  • SELECT on dbo.ExecutionLog and dbo.Catalog.
  • dbo.ExecutionLog3 is used when the report server has it, SSRS 2008 R2 and newer.

The two views

Timeline

The SSRS reports run timeline
One lane per report across twenty four hours, with the quieter reports collected into one lane at the bottom.

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

The SSRS reports run grid
One row per execution, with who ran it and what it cost.
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.



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.