Documentation Index

Fetch the complete documentation index at: https://docs.fortifiedwisdom.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview - Blocking

Prev Next

Blocking – Overview

The Blocking Overview screen displays aggregated blocking activity across all instances in scope, based on the filters applied. Use this screen to identify which instances, databases, objects, and SQL statements are responsible for the most blocking events and cumulative wait time across your environment.

The Overview is organized into two main sections: a histogram showing blocking events or victims over time, and a data table that can be toggled between Blocks by Chain and Blocks by Object.

Navigate to Performance › Blocking to open the Overview.

Toolbar and Filter Controls

  • Views — Apply a saved view configuration
  • Tag — Filter by tags assigned to hosts, instances, or databases. Tags are user-defined groupings commonly used to identify business units, applications, environments, or dashboards. Filtering by tag targets all assets that share that tag. Tags are created and managed in the Tags section.
  • Filters — Apply one or more filters from the filter panel
  • Reset — Clear all active filters and return to the default view

The Filters panel provides the following options:

  • Instance — Limit results to one or more monitored SQL Server instances
  • Database — Filter to a specific database within the selected instance(s)
  • Blocker ID — Filter to a specific aggregated blocking chain
  • Application Host — Filter to blocking activity originating from a specific host machine

Filters applied here persist when navigating to the Details screen. The Details screen requires a single instance to be selected in the Instance filter. Narrow your selection to one instance before switching to Details.

Date and Time Controls

Use the calendar widget to set the date range for the analysis. The default is the past seven days. The selected range is displayed in the card header.

Use the Chart Time Widget to adjust the time range displayed on the histogram anchored by the end date/time. The default interval is the last 7 days, which is set by the reset button. The displayed interval will approximate the selected date range from the Date Picker.


Blocking Events / Blocking Victims

This card visualizes blocking frequency over the selected time range. Toggle between Blocking Events and Blocking Victims using the selector in the card header.

Blocking Events

The Blocking Events Count histogram displays the top three instances by blocking event count as color-coded stacked bars, with a combined bar representing all other servers. Each bar represents one time interval as set by the Auto interval or manual time interval selector. The current date range is displayed inline in the chart header. The legend below the chart shows each of the top three instances by name with their average event count, alongside the All Other Servers grouping.

How to Use:

The time range displayed on the chart may be adjusted in three ways: use the calendar widget in the upper right corner to set explicit start and end dates and times; click and drag directly on the chart to zoom into a specific period; or use the chart navigation controls to move forward or backward by one or two interval blocks, change the Chart Interval (anchored to the end date and time), or adjust the plot granularity. The default plot granularity on Blocking is Auto (3h) for a 7-day range, with other options available. See Using the Date Picker and Chart Time Widget for full details.

Additional chart controls:

  • Click a legend item to toggle that instance's bars on or off in the chart; toggled-off items appear dimmed in the legend
  • Hover over a legend item to bring that instance's bars to the front and dim all others, making it easier to isolate activity for a specific instance across the full time range
  • Use the instances toggle (the icon showing a count badge) in the navigation bar to show or hide specific instances in the chart
  • Apply the Instance, Database, Application Host, or Tag toolbar filters to focus on a subset of your environment

What It Tells You:

Spikes in blocking event count indicate periods when contention was elevated. Recurring spikes at specific times of day or days of the week suggest scheduled jobs or batch processes that may be candidates for rescheduling or optimization.

Blocking Victims

Switching to Blocking Victims shows the count of sessions that were blocked during each time interval, rather than the count of distinct blocking events. A single blocking event can produce many victims; this view helps quantify the downstream impact of blocking activity.


Blocks by Chain / Blocks by Object

The lower section of the Overview can be toggled between Blocks by Chain and Blocks by Object using the selector in the card header.

Blocks by Chain

WISdom aggregates blocking events by the combination of instance, database, lead blocker, and object into unique Blocker IDs. This means the same SQL statement blocking the same object will be grouped together, surfacing the highest-impact and most frequent points of contention across your environment.

The default view (Group By: Default) displays all columns flat without grouping:

Column Description
Blocker ID Unique identifier for the aggregated blocking chain
Instance Instance where the blocking occurred
Database Database where the blocking occurred
Object Object the lead blocker's statement is acting on
Lead Blocker The SQL statement executed by the blocking session, or [Sleeping Transaction] if the block was caused by an open idle transaction
Blocking Cost Estimated dollar cost of the cumulative blocking impact for this chain
Blocking Impact Cumulative wait time across all victims for this chain
Blocking Events Number of times this blocking event occurred in the selected range
Blocked Victims Total count of blocked sessions for this chain

Click any column header to sort ascending or descending. Use the column selector at the top right of the grid to show or hide individual columns.

Group By:

Use the Group By drop-down to change the primary grouping. Click any row to drill into the detail view for that grouping. The detail view opens a new screen showing individual Blocker IDs scoped to the selected group, with a Back button and the selected item shown as a breadcrumb at the top. Available Group By options are: Object, Instance, Database, Lead Blocker, Blocker ID.

The detail view shows the following columns:

Column Description
Blocker ID Unique identifier for the aggregated blocking chain
Instance Instance where the blocking occurred
Database Database where the blocking occurred
Object Object the lead blocker's statement is acting on
Lead Blocker The SQL statement executed by the blocking session, or [Sleeping Transaction] if the block was caused by an open idle transaction
Blocking Cost Estimated dollar cost of the blocking impact for this chain
Blocking Impact Cumulative wait time across all victims for this chain
Blocking Events Number of blocking events for this chain
Blocked Victims Total count of blocked sessions for this chain

Click the action icon (3 vertical dots at the right end of the row) on any detail row to navigate to the Details screen for that blocking event. See Blocking – Details for more information.

What It Tells You:

Blocking Cost is the most direct measure of financial impact. Sort by it to prioritize remediation efforts by dollar value. Blocking Impact shows the cumulative wait time for context on duration. A High Blocking Events count with lower impact suggests frequent but short-lived contention; high Impact with low Event counts suggests infrequent but long-running blockers.

Blocks by Object

Blocks by Object groups blocking activity by the database table being contended, rather than by the SQL statement causing the contention. Use this view when a specific table appears across multiple blocking chains, and you want to understand its total contention footprint independent of which statements are causing it.

The default grouping is Table. Unlike Blocks by Chain, the Table grouping is only available in this view and cannot be selected via the Group By on Blocks by Chain.

Columns:

Column Description
Table The table being contended (default grouping)
Blocking Cost Estimated dollar cost of the cumulative blocking impact for this table
Blocks Count of blocking events on this table
Block Wait Time Total blocking wait time for this table
Page Wait Time Total wait time for page-level locks on this table
Row Wait Time Total wait time for row-level locks on this table

Group By:

Use the Group By drop-down to change the primary grouping. Click any row to drill into the detail view for that grouping. Available options: Table, Instance, Database, Schema, Index ID.

What It Tells You:

Tables with high Block Wait Time are the most significant sources of contention regardless of which SQL statements are causing it. High Page Wait Time relative to Row Wait Time may indicate table scan activity or missing indexes causing broad page-level locks rather than precise row-level locks. A table with high Blocking Cost and low Row Wait Time is a strong candidate for index review; see Index Analysis for more detail.


Related Topics