Population Query
Introduction
The Population Query “operator” is not actually an operator. It is the equivalent of the Language Element “operator” for one of the two queries contained in a cursor definition. The Population Query operator is not used in an execution plan with run-time statistics (“actual execution plan”), but only in an execution plan only (“estimated execution plan”).
The Population Query “operator” is one of the two child operators of a Fast Forward, Keyset, or Snapshot “operator” in the execution plan only for any static or keyset cursor, as well as some fast forward cursors. The Population Query “operator” then serves as the parent operator for the execution plan to be executed when the OPEN statement executes.
The task of the execution plan attached to Population Query is to create a snapshot of the cursor results (for static cursors and for some fast forward cursors), or of the key values in the cursor (for keyset cursors) in an internal temporary table, that then is used in the execution plan attached to Fetch Query to return the requested rows when a FETCH statement is executed.
Visual appearance in execution plans
Depending on the tool being used, the Population Query “operator” is displayed in a graphical execution plan as shown below:
|
SSMS and VS Code |
Legacy SSMS |
Plan Explorer |
Paste The Plan |
Algorithm
The Population Query “operator” is “executed” when the OPEN statement for the cursor is executed. The logic of this execution can be thought of as follows, although it is unlikely to be actually implemented like this.
Read next row
The child operator of Population Query is usually a Clustered Index Insert. This operator might or might not return rows. If it does, Population Query ignores the returned data.
Operator properties
Since Population Query is not an actual operator, it does not have its own properties. However, it is used in the execution plan as a container for all properties that apply to the execution plan as a whole. The full list of these properties can be found here.
SQL Server Management Studio additionally also shows a property Description, with a description of what the Population Query operator does: “The query used to populate a cursor’s work table when the cursor is opened.” This text is provided by SQL Server Management Studio itself, it is not actually part of the execution plan XML.
Change log
(Does not include minor changes, such as adding, removing, or changing hyperlinks, correcting typos, and rephrasing for clarity).
May 12, 2026: Added.

