Operator map: what role each node plays

A small plan can contain lookups, filters, joins, calculations, and sorts in the same branch. Reading their names as an isolated list requires memorizing icons; grouping them by function makes it possible to reconstruct the plan’s work.

The name describes an operation

Each box in the plan is an operator: a unit of work that receives rows, performs an operation, and sends rows to the next node. Some operators read a table or index; others transform, combine, order, or preserve the rows they receive.

The icon helps locate the node, but it is not enough to interpret it. Two operators can share an icon or a word while performing different work. Hash Match, for example, can participate in a join or an aggregate. Read the complete name, its inputs, and its properties before assigning a meaning.

Logical operation and physical operator

The logical operation states what the query needs: join sets, order rows, or form groups. The physical operator describes the mechanism SQL Server selected to perform that work.

A logical join can be executed through Nested Loops, Hash Match, or Merge Join. The query retains the same logical intent, but the optimizer can choose different physical mechanisms according to its estimates, the available structures, and the required properties.

Not every node displays both names separately. When they are available, inspect them in the tooltip or the Properties window through fields such as Logical Operation and Physical Operation.

Seven families for orientation

Map of seven operator families with representative SSMS icons

The map groups common operators by the question they help answer. It does not classify a family as good or bad, and it does not replace reading the node’s properties.

The first six symbols reproduce icons used by SSMS. In the general map, the parallelism symbol summarizes flow distribution; the strip for each family then shows the individual icons with their complete names.

Data access

Answers where the rows came from and how they were located. This family includes Index Seek, Index Scan, Table Scan, and Key Lookup. Read the object used, rows read, rows returned, and predicates together.

Index Seek icon in SSMS
Index Seek
Index Scan icon in SSMS
Index Scan
Table Scan icon in SSMS
Table Scan
Key Lookup icon in SSMS
Key Lookup

Filtering and calculation

Answers which expression transforms or removes rows. Filter applies a condition; Compute Scalar adds the result of a calculation; Top limits how many rows continue. Their presence describes work but does not establish a problem by itself.

Filter icon in SSMS
Filter
Compute Scalar icon in SSMS
Compute Scalar
Top icon in SSMS
Top

Joins

Answers how two inputs were combined. Nested Loops, Hash Match, and Merge Join are different physical strategies for performing a join. Examine them together with volume, ordering, memory, and the execution count of each input.

Nested Loops icon in SSMS
Nested Loops
Hash Match icon in SSMS
Hash Match
Merge Join icon in SSMS
Merge Join

Ordering and windows

Answers how rows were ordered or divided for a later calculation. Sort establishes an order; Segment marks group boundaries within an ordered input; Sequence Project adds calculations over that sequence, such as a row number.

Sort icon in SSMS
Sort
Segment icon in SSMS
Segment
Sequence Project icon in SSMS
Sequence Project

Aggregation

Answers how rows were reduced into groups or accumulated results. Stream Aggregate uses an ordered input; Hash Match (Aggregate) forms groups through a hash structure. Both can implement aggregation, but they do not require the same conditions.

Stream Aggregate icon in SSMS
Stream Aggregate
Hash Match Aggregate icon in SSMS
Hash Match (Aggregate)

Materialization

Answers which intermediate result was preserved for reuse. Spool operators store rows temporarily. Check what they build, how many times it is reused, and whether that work prevents a more expensive operation from being repeated.

Table Spool icon in SSMS
Table Spool
Index Spool icon in SSMS
Index Spool

Parallelism

Answers how the flow was distributed among workers and brought back together. A Parallelism operator can distribute, repartition, or gather rows. Read the specific operation instead of relying only on the icon.

Distribute Streams icon in SSMS
Distribute Streams
Repartition Streams icon in SSMS
Repartition Streams
Gather Streams icon in SSMS
Gather Streams

The family does not determine the diagnosis

Classifying an operator establishes its role in the branch. It does not yet show whether that choice was appropriate for the actual volume or whether it explains the observed symptom.

A Scan can be reasonable when the query needs a large portion of a table. A Sort can be necessary to produce the requested order. A Spool can avoid repeated work. Even an operator with a small estimated cost can matter when it executes thousands of times.

Evaluation begins after describing:

  1. which rows the operator receives;
  2. which work it performs;
  3. which rows it returns;
  4. how many times it executes;
  5. what SQL Server estimated and what happened during execution;
  6. which properties or warnings refine that reading.

How to investigate an unfamiliar operator

When a name is unfamiliar, preserve the plan’s thread without guessing:

  1. read the operator’s complete name;
  2. identify how many inputs it receives and where it sends rows;
  3. open Properties and distinguish logical and physical operations when available;
  4. inspect the object, predicate, output columns, rows, and executions;
  5. consult the operator reference and return to the context of that branch.

The definition explains the general mechanism. The specific plan shows why it participates in that query and how much work it performed during that execution.

What this still does not establish

Recognizing each node’s family does not prove that a plan is efficient or automatically identify what should change. Evaluating a decision requires comparing estimates with observations and then relating them to reads, CPU, duration, memory, and workload context.

Next reasonable check

The next article compares estimated and actual rows within the same operator. That comparison moves from the general role of each node to a first observable difference between what SQL Server expected and what it encountered.

Path index

Execution plans

30 articles in Execution plans
  1. 01What an execution plan is for
  2. 02Estimated plans, actual plans, and Live Query Statistics
  3. 03How an execution plan tree is organized
  4. 04Arrows, properties, and execution counts
  5. 05Operator map: what role each node plays
  6. 06Estimated rows and actual rows
  7. 07Index Seek, Index Scan, and Table Scan
  8. 08Key Lookup and repeated work
  9. 09Filter, Compute Scalar, and Top
  10. 10Nested Loops, Hash Match, and Merge Join
  11. 11Sort, Segment, and Sequence Project
  12. 12Stream Aggregate and Hash Match Aggregate
  13. 13Spool: materialization and reuse
  14. 14Parallelism: distributing, repartitioning, and gathering rows
  15. 15Execution plan warnings that require investigation
  16. 16Actions available in the SSMS graphical plan
  17. 17How Showplan XML is organized
  18. 18Walk through Analyze Actual Execution Plan
  19. 19Reads with SET STATISTICS IO
  20. 20CPU and elapsed time with SET STATISTICS TIME
  21. 21Build a repeatable baseline
  22. 22Save and compare two plans
  23. 23History and regressions with Query Store
  24. 24Turn an Analyze Actual Execution Plan scenario into a hypothesis
  25. 25Read a Missing Index suggestion in an execution plan
  26. 26Understand the CREATE INDEX generated by SSMS
  27. 27Decide, create, and verify an index
  28. 28From a slow query to a testable hypothesis
  29. 29Evaluate a change without optimizing for one execution
  30. 30Guided analysis of a reproducible business query