Vector Index Seek
Introduction
The Vector Index Seek, introduced in SQL Server 2025, is not really an actual operator. You can encounter it in graphical execution plans in SSMS (and other tools), but if you look at the underlying XML of the execution plan, you will see that it is actually an Index Seek (or Clustered Index Seek – see below) operator. Front end tools such as SSMS will present it as a Vector Index Seek when the Index Kind subproperty in the Object property group is equal to DiskANN.
Note that there is no Vector Index Scan operator. The optimizer will never generate an execution plan where a vector index would be scanned.
Vector indexes are implemented as three hidden internal tables. One of them stores a graph, with a node for each vector and a subset of all possible edges. The other two are used to store information about changes to the underlying table that have not yet been processed into the graph/edge table. The Vector Index Seek operator uses these to find vectors that have a low distance to the target vector. See here for more details.
Visual appearance in execution plans
Depending on the tool being used, an Index Seek operator with a target that has its Index Kind property equal to DiskANN is displayed in a graphical execution plan as shown below:
|
SSMS and VS Code |
Legacy SSMS |
Plan Explorer |
Paste The Plan |
|
(not supported) |
(not supported) |
(Note that Plan Explorer does not have a dedicated icon for the Vector Index Seek operator, and hence uses its generic icon that it also uses for Language Element and all its variations.)
Algorithm
The Vector Index Seek is not a real operator but merely a visual indicator that an Index Seek or Clustered Index Seek operator is targeting a vector index. Please check the appropriate pages for a full description of the algorithms of those operators.
Operator properties
The properties below are specific to the Vector Index Seek operator, or have a specific meaning when appearing on it. For all other properties, see Common properties. Properties that are included on the Common properties page but are also included below for their specific meaning for the Vector Index Seek operator are marked with a *.
(Note that most of these properties are exactly the same as for the Index Seek operator; they are repeated here for ease of use).
| Property name | Description |
|---|---|
| Actual Number of Rows Read | Unlike other Index Seek operators, the Vector Index Seek does not report this property. |
| Defined Values * | For a Vector Index Seek, this property lists the columns read from the index and returned to the calling operator. It is therefore the same as the Output List property. |
| Forced Index | This property is not used on a Vector Index Seek, even when the vector index was forced with the FORCE_ANN_ONLY hint.. |
| NamedParameterList | This property contains three (or six, see below) NamedParameter objects, that each have a Name and a value. These are as follows:
|
| Object | This property lists the index that is being navigated by the Vector Index Seek operator, using four part naming (database, schema, table, index) and optionally followed by a table alias. The subproperties of the Object property represent the alias and the four name parts separately, but also include two additional properties:
|
| Ordered | This property is always equal to False for a Vector Index Seek. |
| Output List * | A Vector Index Seek always returns the same columns: the clustered index key of the base table (named bmk_1, bmk_2, etc, plus bmk_uniquifier if the clustered index is not declared to be unique), and the distance (named Exprnnnn, where nnnn is a unique number within the execution plan). In SQL Server 2025’s preview vector search functionality, the columns returned were called id (for the clustered index) and distance (for the distance). |
| Table Cardinality | Unlike other Index Seek operators, the Vector Index Seek does not report this property. |
Implicit properties
This table below lists the behavior of the implicit properties for the Vector Index Seek operator.
(Note that most of these properties are exactly the same as for the Index Seek operator; they are repeated here for ease of use.).
| Property name | Description |
|---|---|
| Batch Mode enabled | The Vector Index Seek operator supports row mode execution only. |
| Blocking | The Vector Index Seek operator is non-blocking. |
| Memory requirement | The Vector Index Seek operator does not have any special memory requirement. |
| Order-preserving | The Vector Index Seek operator does not impose an order. |
| Parallelism aware | As far as currently known, the Vector Index Seek operator does not support parallelism. |
| Segment aware | The Vector Index Seek operator is not segment aware. |
Change log
(Does not include minor changes, such as adding, removing, or changing hyperlinks, correcting typos, and rephrasing for clarity).
October 14, 2026: Added.
October 23, 2026: Added a link to a blog post with more details of the internals; changed the URL of this page to be consistent with other pages in the Execution Plan Reference.
