close

Operator List

The list below shows all currently known operators, with their icons as they appear in various tools. The first column shows the icon for each operator as used in the current version of Microsoft’s querying tools: SQL Server Management Studio (SSMS) and Visual Studio Code with the MSSQL extension (VS Code). The second column shows the legacy artwork, as used in SSMS versions 17.3 and older (before December 2017). The third column shows the icons that are used in SolarWinds’ SQL Sentry Plan Explorer, the most popular third-party product for working with execution plans. (Note that until February 2019, Plan Explorer used the same icons as Legacy SSMS). And finally, in the fourth column, you’ll find the icons as used on Brent Ozar’s Paste The Plan, a website designed for easy sharing of execution plans on media that don’t allow attachments but do allow links.

The operator names are hyperlinks to their detailed description. If a name is not a hyperlink, there is no detailed description page for that operator yet.

Name
SSMS and VS Code
(recent versions)
Legacy SSMS
(17.3 and older)
Plan Explorer
Paste The Plan
Short description
Adaptive Join
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Joins two inputs using either hashing or nested loops. The choice is made at run-time, depending on the number of rows in the first input.
ADD/DROP SIGNATURE
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
ALTER xxx
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Assert
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Verifies a condition; raises an error and aborts processing if the condition is met.
ASSIGN WITH QUERY
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
BACKUP xxx
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Batch Hash Table Build
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Maps input values for a join to a hash table, that can then be used to reduce the number of rows to be processed for the other input of that join.
Only on SQL Server 2012.
BEGIN TRANSACTION
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Bitmap
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Maps input values for a join to a bitmap, that can then be used to reduce the number of rows to be processed for the other input of that join.
Catchall
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This icon is used when no suitable specific icon for the operation exists. It is mostly seen for cursor operations.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
CLOSE xxx KEY
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Clustered Index Delete
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Deletes rows from a clustered index, and optionally from one or more nonclustered indexes at the same time.
Clustered Index Insert
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Inserts rows into a clustered index, and optionally into one or more nonclustered indexes at the same time.
Clustered Index Merge
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Applies a stream of insert, update, and delete instructions to a clustered index, and optionally applies the corresponding changes to one or more nonclustered indexes at the same time.
Clustered Index Scan
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads all data from a clustered index, either in allocation order or in logical (index) order.
Clustered Index Seek
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Finds a specific row in a clustered index, based on key value; and optionally continues to scan from there in logical (index) order.
Clustered Index Update
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Updates rows in a clustered index, and optionally in one or more nonclustered indexes at the same time.
Collapse
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Optimizes update processing by replacing a delete and insert for the same key value with a single update.
Columnstore Index Delete
BERJAYA
BERJAYA
BERJAYA
(shown as Index Delete or Clustered Index Delete)
Deletes rows from a columnstore index.
Columnstore Index Insert
BERJAYA
BERJAYA
BERJAYA
(shown as Index Insert or Clustered Index Insert)
Inserts rows into a columnstore index.
Columnstore Index Merge
BERJAYA
BERJAYA
BERJAYA
(shown as Clustered Index Merge)
Applies a stream of insert, update, and delete instructions to a columnstore index.
Columnstore Index Scan
BERJAYA
BERJAYA
BERJAYA
(shown as Index Scan or Clustered Index Scan)
Reads all data from a columnstore index.
Columnstore Index Update
BERJAYA
BERJAYA
BERJAYA
(shown as Index Update or Clustered Index Update)
Updates rows in a columnstore index.
COMMIT TRANSACTION
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Compute Scalar
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Evaluates one or more expressions and adds their results to the data stream.
Concatenation
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Processes two or more inputs, in order, returning all rows returned from each of those inputs.
COND
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Represents the condition evaluation of IF and WHILE statements.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
Constant Scan
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Generates one or more rows with zero or more columns, with constant values as defined in the operator’s properties.
CREATE xxx
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
DBCC
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
DELETE
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Deleted Scan
BERJAYA
BERJAYA
BERJAYA
(no icon)
Reads all data from the deleted pseudo-table. Used in triggers only.
DROP xxx
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Dynamic
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Represents the declaration of a dynamic cursor.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
ENABLE DISABLE TRIGGER
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
EXECUTE AS
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
EXECUTE PROC
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Fast Forward
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Represents the declaration of a fast forward cursor.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
Fetch Query
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Represents the query to be used for FETCH statements.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
Filter
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Applies a predicate to its input rows and returns only rows for which the predicate evaluates to True.
Foreign Key References Check
BERJAYA
(not supported)
BERJAYA
(no icon)
Performs referential integrity checking for modified data in cases where more than 253 foreign key references exist on a single primary key or unique constraint.
Only on SQL Server 2016 and newer.
GRANT
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Hash Match
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Builds a hash table from its first input, then uses that hash table to either join to its second input, or produce aggregated values.
Index Delete
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Deletes rows from a nonclustered index.
Index Insert
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Inserts rows into a nonclustered index.
Index Scan
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads all data from a nonclustered index, either in allocation order or in logical (index) order.
Index Seek
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Finds a specific row in a nonclustered index, based on key value; and optionally continues to scan from there in logical (index) order.
Index Spool
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Stores its input rows in an internal, indexed worktable; this indexed worktable can then be used to re-process specific subsets of the data.
Index Update
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Updates rows in a nonclustered index; may also be used to insert and/or delete rows from that same index.
INSERT
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Inserted Scan
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads all data from the inserted pseudo-table. Used in triggers only.
Key Lookup
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads a single row from a clustered index, based on a key value that was retrieved from a nonclustered index on the same table.
Keyset
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Represents the declaration of a keyset cursor.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
Language Element
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This icon is used for operators for which no suitable specific icon is available. It is mostly seen as the top-left operator of an execution plan for operations other than SELECT, serving as the container for properties of the plan as a whole.
It can also be used, in an execution plan only, for statements with no execution plan.
MERGE
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Merge Interval
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Combines multiple sets of potentially overlapping intervals into lesser but non-overlapping intervals.
Merge Join
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Joins two inputs that are ordered by the join key(s), exploiting the known sort order for optimal processing efficiency.
Nested Loops
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Joins two inputs by repeatedly executing the second input for each row in the first input.
Online Index Insert
BERJAYA
BERJAYA
BERJAYA
BERJAYA
For an online index rebuild, this operator represents the insertion of data in an index while keeping the index online.
OPEN xxx KEY
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Parallelism (Distribute Streams)
BERJAYA
BERJAYA
BERJAYA
BERJAYA
The parallelism operator, also known as exchange operator, manages the distribution of rows between threads in parallel plans. The icon changes depending on the logical operation, and the functionality changes sufficiently that each logical operation is described separately.
The Distribute Streams logical operation receives rows from a serial region of the plan, and distributes them to multiple threads in a parallel region of the plan.
Parallelism (Gather Streams)
BERJAYA
BERJAYA
BERJAYA
BERJAYA
The parallelism operator, also known as exchange operator, manages the distribution of rows between threads in parallel plans. The icon changes depending on the logical operation, and the functionality changes sufficiently that each logical operation is described separately.
The Gather Streams logical operation gathers rows from the multiple threads of a parallel region of the plan, and sends them to a serial region of the plan.
Parallelism (Repartition Streams)
BERJAYA
BERJAYA
BERJAYA
BERJAYA
The parallelism operator, also known as exchange operator, manages the distribution of rows between threads in parallel plans. The icon changes depending on the logical operation, and the functionality changes sufficiently that each logical operation is described separately.
The Repartition Streams logical operation gathers rows from the multiple threads of a parallel region of the plan, and distributes them to multiple threads in another parallel region of the plan, where a different distribution is needed.
Parameter Table Scan
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Used to insert the results of an EXECUTE statement into a table.
Population Query
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Represents the query to be used for the OPEN cursor statement.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
Put
BERJAYA
(not supported)
BERJAYA
(no icon)
Used to insert data in external (Polybase) tables.
Introduced in SQL Server 2016.
Remote Delete
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Deletes rows from a remote object.
Remote Insert
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Inserts rows into a remote object.
Remote Query
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Submits a query to a remote destination for execution there. The operator will then return all rows produced by the remote destination.
Remote Scan
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads all data from a remote object.
Remote Update
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Updates rows in a remote object.
RESTORE xxx
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Result
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Also known as “Select”, this icon is used as the top-left operator in any plan for a SELECT statement. It can be considered the representation of the client, and serves as the container for properties of the plan as a whole.
REVERT
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
RID Lookup
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads a single row from a heap table, based on an RID value that was retrieved from a nonclustered index on the same table.
ROLLBACK TRANSACTION
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Row Count Spool
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Counts the number of rows in its input and then returns the same number of empty rows.
Segment
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Marks the start of each new segment in the data stream by inspecting specific columns for a change in their data.
Sequence
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Processes two or more inputs, in order, returning only rows returned from the final input.
Sequence Project
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Computes values that are determined by a row’s relative position within the entire data stream.
SELECT
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Result operator, which typically is labelled as SELECT in the execution plan.
SET ON/OFF
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
SET STATS
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
SETUSER
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Snapshot
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Represents the declaration of a static cursor.
Only in execution plan only; not in execution plan plus run-time statistics or live execution plan.
Sort
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads all input rows, sorts them, and then returns them in the specified order.
Split
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Optimizes update processing by replacing update operations in the corresponding delete and insert operations.
Stored Procedure
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Stream Aggregate
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Computes aggregation results by reading a sorted input stream and returning a single row for each set of rows with the same key value.
Switch
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Executes only one of its inputs; which input is executed is determined at runtime.
Table Delete
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Deletes rows from a heap table, and optionally from one or more nonclustered indexes at the same time.
Table Insert
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Inserts rows into a heap table, and optionally into one or more nonclustered indexes at the same time.
Table Merge
BERJAYA
BERJAYA
BERJAYA
(no icon)
Applies a stream of insert, update, and delete instructions to a heap table, and optionally applies the corresponding changes to one or more nonclustered indexes at the same time.
Table Scan
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Reads all data from a heap table, in allocation order.
Table Spool
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Stores its input rows in an internal worktable; this worktable can then be used to re-process the same data.
Table Update
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Updates rows in a heap table, and optionally in one or more nonclustered indexes at the same time.
Table Valued Function
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Executes a table-valued function and stores the results in a temporary table.
Top
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Returns only the first number or percent of its input rows, optionally skipping the first few and optionally adding extra rows based on ties in specified columns.
TRUNCATE TABLE
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
UDX
BERJAYA
BERJAYA
BERJAYA
BERJAYA
A catch-all operator icon and name for what is in fact a set of different “extended” operators that are involved in various XML (XQuery and XPath) and JSON operations.
UPDATE
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
UPDATE STATISTICS
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
USE DATABASE
BERJAYA
BERJAYA
BERJAYA
BERJAYA
This is actually the Language Element operator, which typically is named after the T-SQL keyword of the query.
Window Aggregate
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Evaluates one or more aggregate expressions with a window definition and adds their results to the data stream.
Window Spool
BERJAYA
BERJAYA
BERJAYA
BERJAYA
Stores its input rows in an internal worktable; for each row then returns all rows associated with its window specification.

Change log

(Does not include minor changes, such as adding, removing, or changing hyperlinks, correcting typos, and rephrasing for clarity).

May 31, 2018: Added.
September 24, 2018: Replaced all SQL Operations Studio operator icons with the (slightly changed) operator icons as displayed in Azure Data Studio.
February 5, 2019: Added a column for the new icons as used in Plan Explorer (thanks, Aaron).
June 13, 2020: Replaced the “old” four sets of icons (SSMS 17.4 and up; SSMS until 17.3; Azure Data Studio; and Plan Explorer) with four “new” sets (SSMS and ADS current versions; Legacy SSMS; Plan Explorer; and Paste The Plan).
May 2, 2023: Created separate entries for the three logical operations of the Parallelism operator
November 9, 2024: Changed text and link to reflect rebranding of SQL Sentry Plan Explorer as SolarWinds Plan Explorer.
July 6, 2025: Added entries for many of the different names the Language Element operator can have in execution plans.
February 1, 2026: Corrected the short description of the Parameter Table Scan operator; removed references to Azure Data Studio (which will retire February 28, 2026); added references to Visual Studio Code with the MSSQL extension.
May 12, 2026: Added the ASSIGN WITH QUERY and Fast Forward “operators”.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close