Referenz zu logischen und physischen ShowplanoperatorenShowplan Logical and Physical Operators Reference

Dieses Thema gilt für: JaSQL ServerJaAzure SQL-DatenbankkeineAzure SQL Data Warehouse keine Parallel DatawarehouseTHIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Operatoren beschreiben, wie eine Abfrage oder eine DML-Anweisung (Data Manipulation Language) in SQL ServerSQL Server ausgeführt wird.Operators describe how SQL ServerSQL Server executes a query or a Data Manipulation Language (DML) statement. Der Abfrageoptimierer verwendet Operatoren, um einen Abfrageplan für das in der Abfrage angegebene Ergebnis zu erstellen, oder zum Ausführen des in der DML-Anweisung angegebenen Vorgangs.The query optimizer uses operators to build a query plan to create the result specified in the query, or to perform the operation specified in the DML statement. Der Abfrageplan ist eine Struktur, die aus physischen Operatoren besteht.The query plan is a tree consisting of physical operators. Sie können den Abfrageplan mit den SET SHOWPLAN-Anweisungen, den grafischen Ausführungsplanoptionen in SQL Server Management StudioSQL Server Management Studio, oder den SQL Server Profiler Showplan-Ereignisklassen anzeigen.You can view the query plan by using the SET SHOWPLAN statements, the graphical execution plan options in SQL Server Management StudioSQL Server Management Studio, or the SQL Server Profiler Showplan event classes.

Operatoren werden als logische und physische Operatoren klassifiziert.Operators are classified as logical and physical operators.

Logische OperatorenLogical Operators
Logische Operatoren beschreiben den relationalen algebraischen Vorgang, der für die Anweisungsverarbeitung verwendet wird.Logical operators describe the relational algebraic operation used to process a statement. Mit anderen Worten, logische Operatoren beschreiben konzeptionell den auszuführenden Vorgang.In other words, logical operators describe conceptually what operation needs to be performed.

Physische OperatorenPhysical Operators
Physische Operatoren implementieren den durch logische Operatoren beschriebenen Vorgang.Physical operators implement the operation described by logical operators. Jeder physische Operator ist ein Objekt oder eine Routine, das bzw. die einen Vorgang ausführt.Each physical operator is an object or routine that performs an operation. Einige Operatoren greifen z. B. auf Spalten oder Zeilen einer Tabelle, eines Index oder einer Sicht zu.For example, some physical operators access columns or rows from a table, index or view. Andere physische Operatoren führen andere Vorgänge aus, z. B. Berechnungen, Aggregationen, Datenintegritätsprüfungen oder Joins.Other physical operators perform other operations such as calculations, aggregations, data integrity checks or joins. Physischen Operatoren sind Kosten zugeordnet.Physical operators have costs associated with them.

Über die physischen Operatoren werden Daten initialisiert, aufgelistet und beendet.The physical operators initialize, collect data, and close. Der physische Operator kann insbesondere die folgenden drei Methodenaufrufe beantworten:Specifically, the physical operator can answer the following three method calls:

  • Init(): Mit der Init()-Methode wird ein physischer Operator initialisiert und dazu angewiesen, gegebenenfalls Datenstrukturen einzurichten.Init(): The Init() method causes a physical operator to initialize itself and set up any required data structures. Der physische Operator kann mehrere Init() -Aufrufe empfangen; in der Regel empfängt er jedoch nur einen.The physical operator may receive many Init() calls, though typically a physical operator receives only one.

  • GetNext(): Mit der GetNext() -Methode wird ein Operator angewiesen, die erste oder nächste Datenzeile abzurufen.GetNext(): The GetNext() method causes a physical operator to get the first, or subsequent row of data. Der physische Operator kann null oder mehrere GetNext() -Aufrufe empfangen.The physical operator may receive zero or many GetNext() calls.

  • Close(): Mit der Close() -Methode wird der physische Operator dazu angewiesen, einige Cleanupvorgänge auszuführen und sich selbst zu beenden.Close(): The Close() method causes a physical operator to perform some clean-up operations and shut itself down. Ein physischer Operator empfängt nur einen Close() -Aufruf.A physical operator only receives one Close() call.

    Die GetNext()-Methode gibt eine Datenzeile zurück, und die Anzahl der Aufrufe wird als ActualRows in der durch SET STATISTICS PROFILE ON oder SET STATISTICS XML ON erstellten Showplanausgabe angezeigt.The GetNext() method returns one row of data, and the number of times it is called appears as ActualRows in the Showplan output that is produced by using SET STATISTICS PROFILE ON or SET STATISTICS XML ON. Weitere Informationen zu diesen SET-Optionen finden Sie unter SET STATISTICS PROFILE (Transact-SQL) und SET STATISTICS XML (Transact-SQL).For more information about these SET options, see SET STATISTICS PROFILE (Transact-SQL) and SET STATISTICS XML (Transact-SQL).

    Die ActualRebinds- und ActualRewinds-Zähler, die in der Showplanausgabe angezeigt werden, beziehen sich auf die Anzahl der Aufrufe der Init()-Methode.The ActualRebinds and ActualRewinds counts that appear in Showplan output refer to the number of times that the Init() method is called. ActualRebinds entspricht 1 und ActualRewinds entspricht 0, es sei denn, ein Operator befindet sich innerhalb eines Schleifenjoins.Unless an operator is on the inner side of a loop join, ActualRebinds equals one and ActualRewinds equals zero. Wenn sich ein Operator innerhalb eines Schleifenjoins befindet, muss die Summe der erneuten Bindungen und Zurückspulvorgänge der Anzahl der verarbeiteten Vorgänge außerhalb des Joins entsprechen.If an operator is on the inner side of a loop join, the sum of the number of rebinds and rewinds should equal the number of rows processed on the outer side of the join. Unter 'erneuter Bindung' wird verstanden, dass sich mindestens ein korrelierter Parameter des Joins geändert hat und daher das Innere des Joins neu ausgewertet werden muss.A rebind means that one or more of the correlated parameters of the join changed and the inner side must be reevaluated. Unter 'Zurückspulvorgang' wird verstanden, dass sich keiner der korrelierten Parameter geändert hat und das vorherige innere Resultset daher wiederverwendet werden kann.A rewind means that none of the correlated parameters changed and the prior inner result set may be reused.

    ActualRebinds und ActualRewinds sind in der mithilfe von SET STATISTICS XML ON erstellten XML-Showplanausgabe vorhanden.ActualRebinds and ActualRewinds are present in XML Showplan output produced by using SET STATISTICS XML ON. Sie werden nur für die Operatoren Nonclustered Index Spool, Remote Query, Row Count Spool, Sort, Table Spoolund Table-valued Function aufgefüllt.They are only populated for the Nonclustered Index Spool, Remote Query, Row Count Spool, Sort, Table Spool, and Table-valued Function operators. ActualRebinds und ActualRewinds können auch für den Assert - und den Filter -Operator aufgefüllt werden, wenn das StartupExpression -Attribut auf TRUE festgelegt ist.ActualRebinds and ActualRewinds may also be populated for the Assert and Filter operators when the StartupExpression attribute is set to TRUE.

    Wenn ActualRebinds und ActualRewinds in einem XML-Showplan vorhanden sind, können sie mit EstimateRebinds und EstimateRewindsverglichen werden.When ActualRebinds and ActualRewinds are present in an XML Showplan, they are comparable to EstimateRebinds and EstimateRewinds. Wenn sie nicht vorhanden sind, kann die geschätzte Zeilenanzahl (EstimateRows) mit der tatsächlichen Zeilenanzahl (ActualRows) verglichen werden.When they are absent, the estimated number of rows (EstimateRows) is comparable to the actual number of rows (ActualRows). Beachten Sie, dass die tatsächliche grafische Showplanausgabe für tatsächliche erneute Bindungen und Zurückspulvorgänge Nullen anzeigt, wenn letztere nicht vorhanden sind.Note that actual graphical Showplan output displays zeros for the actual rebinds and actual rewinds when they are absent.

    Ein entsprechender Zähler, ActualEndOfScans, ist verfügbar, wenn die Showplanausgabe mithilfe von SET STATISTICS XML ON erstellt wird.A related counter, ActualEndOfScans, is available only when Showplan output is produced by using SET STATISTICS XML ON. Wenn ein physischer Operator das Ende seines Datenstroms erreicht, wird dieser Zähler um 1 erhöht.Whenever a physical operator reaches the end of its data stream, this counter is incremented by one. Wenn ein physischer Operator das Ende seines Datenstroms erreicht, wird dieser Zähler um 1 erhöht.A physical operator can reach the end of its data stream zero, one, or multiple times. Wie bei erneuten Bindungen und Zurückspulvorgängen kann die Anzahl für das Scanende größer als 1 sein; aber nur, wenn sich der Operator innerhalb eines Schleifenjoins befindet.As with rebinds and rewinds, the number of end of scans can be more than one only if the operator is on the inner side of a loop join. Die Anzahl für Scanende muss kleiner oder gleich der Summe der erneuten Bindungen und Zurückspulvorgänge sein.The number of end of scans should be less than or equal to the sum of the number of rebinds and rewinds.

Zuordnen von physischen und logischen OperatorenMapping Physical and Logical Operators

Der Abfrageoptimierer erstellt einen Abfrageplan als Struktur, die aus logischen Operatoren besteht.The query optimizer creates a query plan as a tree consisting of logical operators. Nach dem Erstellen des Abfrageplans wählt der Abfrageoptimierer für jeden logischen Operator den effizientesten physischen Operator aus.After the query optimizer creates the plan, the query optimizer chooses the most efficient physical operator for each logical operator. Der Abfrageoptimierer entscheidet auf Basis der Kosten, welcher physischer Operator einen logischen Operator implementieren soll.The query optimizer uses a cost-based approach to determine which physical operator will implement a logical operator.

Normalerweise kann ein logischer Vorgang von mehreren physischen Operatoren implementiert werden.Usually, a logical operation can be implemented by multiple physical operators. Ein physischer Operator kann jedoch in seltenen Fällen mehrere logische Vorgänge implementieren.However, in rare cases, a physical operator can implement multiple logical operations as well.

Beschreibung der OperatorenOperator Descriptions

In diesem Abschnitt finden Sie Beschreibungen der logischen und physischen Operatoren.This section contains descriptions of the logical and physical operators.

Symbol für grafischen AusführungsplanGraphical Execution Plan Icon ShowplanoperatorShowplan Operator DescriptionDescription
Operator für adaptiven Join (Symbol)Adaptive Join operator icon Adaptiver JoinAdaptive Join Mit dem Operator für einen adaptiven Join können Sie wählen, ob Hashjoin- oder Nested Loop-Join-Methoden auf nach dem Scan der ersten Eingabe zurückgestellt werden.The Adaptive Join operator enables the choice of a hash join or nested loop join method to be deferred until the after the first input has been scanned.
InclusionThresholdSettingNone AggregatAggregate Mit dem Aggregate -Operator wird ein Ausdruck berechnet, der MIN, MAX, SUM, COUNT oder AVG enthält.The Aggregate operator calculates an expression containing MIN, MAX, SUM, COUNT or AVG. Der Aggregate -Operator kann ein logischer oder physischer Operator sein.The Aggregate operator can be a logical operator or a physical operator.
Operatorsymbol für arithmetische Ausdrücke (Symbol)Arithmetic expression operator icon Arithmetic ExpressionArithmetic Expression Der Arithmetic Expression -Operator berechnet einen neuen Wert anhand vorhandener Werte in einer Zeile.The Arithmetic Expression operator computes a new value from existing values in a row. Arithmetic Expression wird nicht in SQL Server 2017SQL Server 2017verwendet.Arithmetic Expression is not used in SQL Server 2017SQL Server 2017.
Assert-Operator (Symbol)Assert operator icon AssertAssert Der Assert -Operator überprüft eine Bedingung.The Assert operator verifies a condition. Beispielsweise überprüft er die referenzielle Integrität, oder er stellt sicher, dass eine skalare Unterabfrage eine Zeile zurückgibt.For example, it validates referential integrity or ensures that a scalar subquery returns one row. Für jede Eingabezeile wertet der Assert -Operator den Ausdruck in der Argument -Spalte des Ausführungsplans aus.For each input row, the Assert operator evaluates the expression in the Argument column of the execution plan. Wird der Ausdruck mit NULL ausgewertet, so wird die Zeile an den Assert -Operator übergeben, und die Ausführung der Abfrage wird fortgesetzt.If this expression evaluates to NULL, the row is passed through the Assert operator and the query execution continues. Wird dieser Ausdruck zu einem Nicht-NULL-Wert ausgewertet, so wird der entsprechende Fehler ausgelöst.If this expression evaluates to a nonnull value, the appropriate error will be raised. Der Assert -Operator ist ein physischer Operator.The Assert operator is a physical operator.
Assign-Sprachelement (Symbol)Assign language element icon AssignAssign Der Assign -Operator weist einer Variablen den Wert eines Ausdrucks oder einer Konstanten zu.The Assign operator assigns the value of an expression or a constant to a variable. Assign ist ein Sprachelement.Assign is a language element.
InclusionThresholdSettingNone Async ConcatAsync Concat Der Async Concat-Operator wird nur in Remoteabfragen (verteilten Abfragen) verwendet.The Async Concat operator is used only in remote queries (distributed queries). Diese Anweisung weist n untergeordnete Knoten und einen übergeordneten Knoten auf.It has n children and one parent node. Gewöhnlich sind manche untergeordnete Knoten Remotecomputer, die an einer verteilten Abfrage beteiligt sind.Usually, some of the children are remote computers that participate in a distributed query. Async Concat gibt open()-Aufrufe für alle untergeordneten Knoten gleichzeitig aus und wendet dann auf jeden untergeordneten Knoten ein Bitmap an.Async Concat issues open() calls to all of the children simultaneously and then applies a bitmap to each child. Für jedes Bit, das 1 ist, sendet Async Concat bei Bedarf die Ausgabezeilen an den übergeordneten Knoten.For each bit that is a 1, Async Concat sends the output rows to the parent node on demand.
Bitmap-Operator (Symbol)Bitmap operator icon BitmapBitmap SQL ServerSQL Server verwendet den Bitmap -Operator, um das Filtern mithilfe einer Bitmap in parallelen Abfrageplänen zu implementieren. uses the Bitmap operator to implement bitmap filtering in parallel query plans. Durch das Filtern mithilfe einer Bitmap kann die Abfrageausführung beschleunigt werden, indem Zeilen mit Schlüsselwerten eliminiert werden, die keine Joindatensätze erstellen können, bevor Zeilen durch einen anderen Operator wie den Parallelism -Operator übergeben werden.Bitmap filtering speeds up query execution by eliminating rows with key values that cannot produce any join records before passing rows through another operator such as the Parallelism operator. Ein Bitmapfilter verwendet eine kompakte Darstellung einer Gruppe von Werten aus einer Tabelle in einem Bereich der Operatorstruktur, um Zeilen aus einer zweiten Tabelle in einem anderen Bereich der Struktur zu filtern.A bitmap filter uses a compact representation of a set of values from a table in one part of the operator tree to filter rows from a second table in another part of the tree. Durch das Entfernen unnötiger Zeilen zu einem frühen Zeitpunkt in der Abfrage müssen nachfolgende Operatoren weniger Zeilen verarbeiten, wodurch eine Steigerung der Gesamtleistung der Abfrage erzielt werden kann.By removing unnecessary rows early in the query, subsequent operators have fewer rows to work with, and the overall performance of the query improves. Der Optimierer bestimmt, wann eine Bitmap eine ausreichende Selektivität aufweist, damit sie verwendet werden kann, und in welchen Operatoren der Filter angewendet wird.The optimizer determines when a bitmap is selective enough to be useful and in which operators to apply the filter. DerBitmap -Operator ist ein physischer Operator.Bitmap is a physical operator.
Bitmap-Operator (Symbol)Bitmap operator icon Bitmap CreateBitmap Create Der Bitmap Create -Operator wird in der Showplanausgabe dort angezeigt, wo Bitmaps erstellt werden.The Bitmap Create operator appears in the Showplan output where bitmaps are built. Bitmap Create ist ein logischer Operator.Bitmap Create is a logical operator.
Bookmark Lookup-Operator (Symbol)Bookmark lookup operator icon Bookmark LookupBookmark Lookup Der Operator Bookmark Lookup verwendet ein Lesezeichen (Zeilen-ID oder Gruppierungsschlüssel), um die zugehörige Zeile in der Tabelle oder im gruppierten Index nachzuschlagen.The Bookmark Lookup operator uses a bookmark (row ID or clustering key) to look up the corresponding row in the table or clustered index. Die Argument -Spalte enthält das Lesezeichen, über das die Zeile in der Tabelle oder im gruppierten Index gesucht wird.The Argument column contains the bookmark label used to look up the row in the table or clustered index. Die Argument -Spalte enthält auch den Namen der Tabelle oder des gruppierten Indexes, wo die Zeile gesucht wird.The Argument column also contains the name of the table or clustered index in which the row is looked up. Wenn die WITH PREFETCH-Klausel in der Argument -Spalte auftritt, hat der Abfrageprozessor ermittelt, dass Lesezeichen in der Tabelle oder im gruppierten Index am besten mit asynchronem Vorauslesen (Read-Ahead) nachgeschlagen werden sollten.If the WITH PREFETCH clause appears in the Argument column, the query processor has determined that it is optimal to use asynchronous prefetching (read-ahead) when looking up bookmarks in the table or clustered index.

Bookmark Lookup wird in SQL Server 2017SQL Server 2017nicht verwendet.Bookmark Lookup is not used in SQL Server 2017SQL Server 2017. Die entsprechende Funktionalität wird hier von Clustered Index Seek und RID Lookup bereitgestellt.Instead, Clustered Index Seek and RID Lookup provide bookmark lookup functionality. Auch der Key Lookup -Operator stellt diese Funktionalität bereit.The Key Lookup operator also provides this functionality.
InclusionThresholdSettingNone Branch RepartitionBranch Repartition Ein paralleler Abfrageplan kann mitunter logische Bereiche von Iteratoren enthalten.In a parallel query plan, sometimes there are conceptual regions of iterators. Alle Iteratoren innerhalb eines solchen Bereichs können durch parallele Threads ausgeführt werden.All of the iterators within such a region can be executed by parallel threads. Die Bereiche selbst müssen seriell ausgeführt werden.The regions themselves must be executed serially. Bestimmte Parallelism -Iteratoren innerhalb eines einzelnen Bereichs werden Branch Repartitiongenannt.Some of the Parallelism iterators within an individual region are called Branch Repartition. Der Parallelism -Iterator an der Grenze zwischen zwei Bereichen wird Segment Repartitiongenannt.The Parallelism iterator at the boundary of two such regions is called Segment Repartition. SowohlBranch Repartition als auch Segment Repartition sind logische Operatoren.Branch Repartition and Segment Repartition are logical operators.
InclusionThresholdSettingNone BroadcastBroadcast Broadcast weist einen untergeordneten Knoten und n übergeordnete Knoten auf.Broadcast has one child node and n parent nodes. Broadcast sendet die Eingabezeilen bei Bedarf an mehrere Consumer.Broadcast sends its input rows to multiple consumers on demand. Jeder Consumer erhält alle Zeilen.Each consumer gets all of the rows. Wenn z.B. alle Consumer sich auf der Erstellungsseite eines Hashjoins befinden, werden n Kopien der Hashtabellen erstellt.For example, if all of the consumers are build sides of a hash join, then n copies of the hash tables will be built.
Build Hash-Operator (Symbol)Build hash operator icon Build HashBuild Hash Gibt die Erstellung einer Batchhashtabelle für einen speicheroptimierten xVelocity-columnstore-Index an.Indicates the build of a batch hash table for an xVelocity memory optimized columnstore index.
InclusionThresholdSettingNone CacheCache Cache ist eine spezielle Version des Spool -Operators.Cache is a specialized version of the Spool operator. Er speichert nur eine Datenzeile.It stores only one row of data. Cache ist ein logischer Operator.Cache is a logical operator. Cache wird in SQL Server 2017SQL Server 2017nicht verwendet.Cache is not used in SQL Server 2017SQL Server 2017.
Clustered Index Delete-Operator (Symbol)Clustered index delete operator icon Clustered Index DeleteClustered Index Delete Der Clustered Index Delete -Operator löscht Zeilen aus dem gruppierten Index, der in der Argument-Spalte des Abfrageausführungsplans angegeben ist.The Clustered Index Delete operator deletes rows from the clustered index specified in the Argument column of the query execution plan. Wenn ein WHERE:()-Prädikat in der Argument-Spalte vorhanden ist, werden nur die Zeilen gelöscht, die das Prädikat erfüllen.Clustered Index Delete ist ein physischer Operator.If a WHERE:() predicate is present in the Argument column, then only those rows that satisfy the predicate are deleted.Clustered Index Delete is a physical operator.
Clustered Index Insert-Operator (Symbol)Clustered index insert operator icon Clustered Index InsertClustered Index Insert Der Clustered Index Insert -Showplanoperator fügt die Eingabezeilen in den gruppierten Index ein, der in der Argument-Spalte angegeben ist.The Clustered Index Insert Showplan operator inserts rows from its input into the clustered index specified in the Argument column. Die Argument-Spalte enthält auch ein SET:()-Prädikat, das den für die einzelnen Spalten festgelegten Wert anzeigt.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Wenn Clustered Index Insert keine untergeordneten Elemente für Eingabewerte enthält, wird die eingefügte Zeile aus dem Insert -Operator selbst übernommen.Clustered Index Insert ist ein physischer Operator.If Clustered Index Insert has no children for insert values, the row inserted is taken from the Insert operator itself.Clustered Index Insert is a physical operator.
Clustered Index Merge-OperatorClustered index merge operator Clustered Index MergeClustered Index Merge Der Clustered Index Merge -Operator übernimmt einen Mergedatenstrom für einen gruppierten Index.The Clustered Index Merge operator applies a merge data stream to a clustered index. Der Operator löscht oder aktualisiert Zeilen aus dem gruppierten Index, der in der Argument -Spalte des Operators angegeben ist, bzw. fügt Zeilen in diesen ein.The operator deletes, updates, or inserts rows from the clustered index specified in the Argument column of the operator. Der tatsächlich ausgeführte Vorgang ist vom Laufzeitwert der in der Argument -Spalte des Operators angegebenen ACTION -Spalte abhängig.The actual operation performed depends on the runtime value of the ACTION column specified in the Argument column of the operator. Clustered Index Merge ist ein physischer Operator.Clustered Index Merge is a physical operator.
Clustered Index Scan-Operator (Symbol)Clustered index scan operator icon Clustered Index ScanClustered Index Scan Der Clustered Index Scan -Operator scannt den gruppierten Index, der in der Argument-Spalte des Abfrageausführungsplans angegeben ist.The Clustered Index Scan operator scans the clustered index specified in the Argument column of the query execution plan. Wenn ein optionales WHERE:()-Prädikat vorhanden ist, werden nur die Zeilen zurückgegeben, die das Prädikat erfüllen.When an optional WHERE:() predicate is present, only those rows that satisfy the predicate are returned. Wenn die Argument-Spalte die ORDERED-Klausel enthält, hat der Abfrageprozessor angefordert, dass die Ausgabe der Zeilen in der Reihenfolge zurückgegeben wird, in der sie vom gruppierten Index sortiert wurden.If the Argument column contains the ORDERED clause, the query processor has requested that the output of the rows be returned in the order in which the clustered index has sorted it. Wurde die ORDERED-Klausel nicht angegeben, scannt die Speicher-Engine den Index optimal (wobei die Ausgabe nicht unbedingt sortiert ist).If the ORDERED clause is not present, the storage engine scans the index in the optimal way, without necessarily sorting the output. Clustered Index Scan ist ein logischer und physischer Operator.Clustered Index Scan is a logical and physical operator.
Clustered Index Seek-Operator (Symbol)Clustered index seek operator icon Clustered Index SeekClustered Index Seek Der Clustered Index Seek -Operator verwendet die Suchfunktionen der Indizes, um Zeilen aus einem gruppierten Index abzurufen.The Clustered Index Seek operator uses the seeking ability of indexes to retrieve rows from a clustered index. Die Argument -Spalte enthält den Namen des verwendeten gruppierten Indexes und das SEEK:()-Prädikat.The Argument column contains the name of the clustered index being used and the SEEK:() predicate. Die Speicher-Engine verarbeitet mit diesem Index nur die Zeilen, die das SEEK:()-Prädikat erfüllen.The storage engine uses the index to process only those rows that satisfy this SEEK:() predicate. Es kann auch ein WHERE:()-Prädikat einschließen, das die Speicher-Engine für alle Zeilen auswertet, die das SEEK:()-Prädikat erfüllen. Dies ist jedoch optional, und es werden keine Indizes für diesen Prozess verwendet.It can also include a WHERE:() predicate where the storage engine evaluates against all rows that satisfy the SEEK:() predicate, but this is optional and does not use indexes to complete this process.

Wenn die Argument -Spalte die ORDERED-Klausel enthält, hat der Abfrageprozessor ermittelt, dass die Zeilen in der Reihenfolge zurückgegeben werden müssen, in der sie vom gruppierten Index sortiert wurden.If the Argument column contains the ORDERED clause, the query processor has determined that the rows must be returned in the order in which the clustered index has sorted them. Wurde die ORDERED-Klausel nicht angegeben, durchsucht die Speicher-Engine den Index optimal (wobei die Ausgabe nicht unbedingt sortiert ist).If the ORDERED clause is not present, the storage engine searches the index in the optimal way, without necessarily sorting the output. Die Ausgabe in der ursprünglichen Reihenfolge kann weniger effizient sein als die unsortierte Ausgabe.Allowing the output to retain its ordering can be less efficient than producing nonsorted output. Bei der Anzeige des LOOKUP-Schlüsselworts, wird ein Bookmark Lookup ausgeführt.When the keyword LOOKUP appears, then a bookmark lookup is being performed. In SQL Server 2008SQL Server 2008 und höheren Versionen stellt der Operator Key Lookup die Bookmark Lookup-Funktionalität bereit.In SQL Server 2008SQL Server 2008 and later versions, the Key Lookup operator provides bookmark lookup functionality. Clustered Index Seek ist ein logischer und physischer Operator.Clustered Index Seek is a logical and physical operator.
Clustered Index Update-Operator (Symbol)Clustered index update operator icon Clustered Index UpdateClustered Index Update Der Clustered Index Update -Operator aktualisiert Eingabezeilen in dem gruppierten Index, der in der Argument -Spalte angegeben ist. Wenn ein WHERE:()-Prädikat vorhanden ist, werden nur die Zeilen aktualisiert, die dieses Prädikat erfüllen.The Clustered Index Update operator updates input rows in the clustered index specified in the Argument column.If a WHERE:() predicate is present, only those rows that satisfy this predicate are updated. Wenn ein SET:()-Prädikat vorhanden ist, wird jede aktualisierte Spalte auf diesen Wert festgelegt.If a SET:() predicate is present, each updated column is set to this value. Wenn ein DEFINE:()-Prädikat vorhanden ist, werden die durch diesen Operator definierten Werte aufgelistet.If a DEFINE:() predicate is present, the values that this operator defines are listed. Auf diese Werte kann in der SET-Klausel oder an anderer Stelle in diesem Operator sowie in dieser Abfrage verwiesen werden.These values may be referenced in the SET clause or elsewhere within this operator and elsewhere within this query. Clustered Index Update ist ein logischer und physischer Operator.Clustered Index Update is a logical and physical operator.
Collapse-Operator (Symbol)Collapse operator icon ReduzierenCollapse Der Collapse -Operator optimiert die Verarbeitung von Aktualisierungen.The Collapse operator optimizes update processing. Eine Aktualisierung kann bei ihrer Ausführung mithilfe des Split -Operators in einen Lösch- und einen Einfügevorgang aufgeteilt werden.When an update is performed, it can be split (using the Split operator) into a delete and an insert. Die Argument -Spalte enthält eine GROUP BY:()-Klausel, die eine Liste von Schlüsselspalten angibt.The Argument column contains a GROUP BY:() clause that specifies a list of key columns. Wenn der Abfrageprozessor benachbarte Zeilen erkennt, die dieselben Schlüsselwerte löschen und einfügen, werden diese separaten Vorgänge durch einen einzigen effektiveren Updatevorgang ersetzt.If the query processor encounters adjacent rows that delete and insert the same key values, it replaces these separate operations with a single more efficient update operation. Collapse ist sowohl ein logischer als auch physischer Operator.Collapse is a logical and physical operator.
Columnstore-IndexscanColumnstore Index Scan Columnstore-IndexscanColumnstore Index Scan Der Columnstore Index Scan -Operator scannt den columnstore-Index, der in der Argument -Spalte des Abfrageausführungsplans angegeben ist.The Columnstore Index Scan operator scans the columnstore index specified in the Argument column of the query execution plan.
Compute Scalar-Operator (Symbol)Compute scalar operator icon Compute ScalarCompute Scalar Der Compute Scalar -Operator wertet einen Ausdruck aus und erstellt einen berechneten skalaren Wert.The Compute Scalar operator evaluates an expression to produce a computed scalar value. Dieser kann an den Benutzer zurückgegeben und/oder an anderer Stelle in der Abfrage als Verweis verwendet werden.This may then be returned to the user, referenced elsewhere in the query, or both. Ein Beispiel für beide Fälle ist ein Filterprädikat oder Joinprädikat.An example of both is in a filter predicate or join predicate. Compute Scalar ist sowohl ein logischer als auch physischer Operator.Compute Scalar is a logical and physical operator.

Compute Scalar -Operatoren in Showplans, die durch SET STATISTICS XML generiert wurden, enthalten eventuell nicht das RunTimeInformation -Element.Compute Scalar operators that appear in Showplans generated by SET STATISTICS XML might not contain the RunTimeInformation element. In grafischen Showplans können Tatsächliche Zeilen, Tatsächlich erneuerte Bindungenund Tatsächliche Zurückspulvorgänge im Fenster Eigenschaften fehlen, wenn die Option Tatsächlichen Ausführungsplan einschließen in SQL Server Management StudioSQL Server Management Studioaktiviert wurde.In graphical Showplans, Actual Rows, Actual Rebinds, and Actual Rewinds might be absent from the Properties window when the Include Actual Execution Plan option is selected in SQL Server Management StudioSQL Server Management Studio. Wenn diese Situation eintritt, bedeutet das, dass diese Operatoren zwar im kompilierten Abfrageplan verwendet wurden, ihre Arbeit jedoch von anderen Operatoren im Laufzeitabfrageplan verrichtet wurde.When this occurs, it means that although these operators were used in the compiled query plan, their work was performed by other operators in the run-time query plan. Beachten Sie außerdem, dass die Anzahl der Ausführungen in der von SET STATISTICS PROFILE generierten Showplanausgabe gleich der Summe der erneuten Bindungen und Zurückspulvorgänge in den von SET STATISTICS XML generierten Showplans ist.Also note that the number of executes in Showplan output generated by SET STATISTICS PROFILE is equivalent to the sum of rebinds and rewinds in Showplans generated by SET STATISTICS XML.
Concatenation-Operator (Symbol)Concatenation operator icon ConcatenationConcatenation Der Concatenation -Operator scannt mehrere Eingaben und gibt die gescannten Zeilen zurück.The Concatenation operator scans multiple inputs, returning each row scanned. Concatenation wird im Allgemeinen verwendet, um das Transact-SQLTransact-SQL -Konstrukt UNION ALL zu implementieren.Concatenation is typically used to implement the Transact-SQLTransact-SQL UNION ALL construct. Der physische Operator Concatenation verfügt über mindestens zwei Eingaben und eine Ausgabe.The Concatenation physical operator has two or more inputs and one output. Concatenation kopiert Zeilen aus dem ersten Eingabedatenstrom in den Ausgabedatenstrom und wiederholt diese Operation anschließend für jeden weiteren Eingabedatenstrom.Concatenation copies rows from the first input stream to the output stream, then repeats this operation for each additional input stream. Concatenation ist sowohl ein logischer als auch ein physischer Operator.Concatenation is a logical and physical operator.
Constant Scan-Operator (Symbol)Constant scan operator icon Constant ScanConstant Scan Mithilfe des Constant Scan -Operators wird mindestens eine konstante Zeile in eine Abfrage eingeführt.The Constant Scan operator introduces one or more constant rows into a query. Ein Compute Scalar -Operator wird häufig nach einem Constant Scan verwendet, um einer Zeile, die durch den Constant Scan -Operator erstellt wurde, Spalten hinzuzufügen.A Compute Scalar operator is often used after a Constant Scan to add columns to a row produced by the Constant Scan operator.
Convert-Sprachelement (Datenbank-Engine - Symbol)Convert (Database Engine) language element icon KonvertierenConvert Der Convert -Operator wandelt einen skalaren Datentyp in einen anderen um.The Convert operator converts one scalar data type to another. Convert ist ein Sprachelement.Convert is a language element.
InclusionThresholdSettingNone Cross JoinCross Join Der Cross Join -Operator verknüpft jede Zeile der ersten (oberen) Eingabe mit jeder Zeile der zweiten (unteren) Eingabe.The Cross Join operator joins each row from the first (top) input with each row from the second (bottom) input. Cross Join ist ein logischer Operator.Cross Join is a logical operator.
Cursorsammelelement (Cursoroperatorsymbol)Cursor catchall cursor operator icon catchallcatchall Das Sammelsymbol wird angezeigt, wenn von der Logik, die grafische Showplans erzeugt, kein geeignetes Symbol für den Iterator gefunden werden kann.The catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical showplans. Das Sammelsymbol zeigt nicht notwendigerweise eine Fehlerbedingung an.The catchall icon does not necessarily indicate an error condition. Es stehen drei Sammelsymbole zur Verfügung: blau (für Iteratoren), orange (für Cursor) und grün (für Transact-SQLTransact-SQL -Sprachelemente).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language elements).
InclusionThresholdSettingNone CursorCursor Die logischen und physischen Cursor -Operatoren beschreiben, wie eine Abfrage oder Aktualisierung mit Cursoroperationen ausgeführt wird.The Cursor logical and physical operators are used to describe how a query or update involving cursor operations is executed. Die physischen Operatoren beschreiben den Algorithmus, der für die physische Implementierung der Cursorverarbeitung verwendet wird, wie z. B. Verwenden eines keysetgesteuerten Cursors.The physical operators describe the physical implementation algorithm used to process the cursor; for example, using a keyset-driven cursor. Jeder Schritt bei der Ausführung eines Cursors benötigt einen physischen Operator.Each step in the execution of a cursor involves a physical operator. Die logischen Operatoren beschreiben eine Cursoreigenschaft, z. B. der Cursor ist schreibgeschützt.The logical operators describe a property of the cursor, such as the cursor is read only.

Zu den logischen Operatoren zählen Asynchronous, Optimistic, Primary, Read Only, Scroll Locks sowie Secondary und Synchronous.Logical operators include Asynchronous, Optimistic, Primary, Read Only, Scroll Locks, and Secondary and Synchronous.

Zu den physischen Operatoren zählen Dynamic, Fetch Query, Keyset, Population Query, Refresh Query und Snapshot.Physical operators include Dynamic, Fetch Query, Keyset, Population Query, Refresh Query and Snapshot.
Declare-Sprachelement (Symbol)Declare language element icon DeclareDeclare Der Declare -Operator weist eine lokale Variable im Abfrageplan zu.The Declare operator allocates a local variable in the query plan. Declare ist ein Sprachelement.Declare is a language element.
Delete-Operator (Datenbank-Engine – Symbol)Delete (Database Engine) operator icon DeleteDelete Der Delete -Operator löscht aus einem Objekt alle Zeilen, die das optionale Prädikat in der Argument -Spalte erfüllen.The Delete operator deletes from an object rows that satisfy the optional predicate in the Argument column.
Delete Scan-Operator (Symbol)Delete scan operator icon Deleted ScanDeleted Scan Der Deleted Scan -Operator scannt die deleted-Tabelle in einem Trigger.The Deleted Scan operator scans the deleted table within a trigger.
InclusionThresholdSettingNone DistinctDistinct Mithilfe des Distinct -Operators werden Duplikate aus einem Rowset oder aus einer Sammlung von Werten entfernt.The Distinct operator removes duplicates from a rowset or from a collection of values. Distinct ist ein logischer Operator.Distinct is a logical operator.
InclusionThresholdSettingNone Distinct SortDistinct Sort Der logische Operator Distinct Sort scannt die Eingabe, entfernt Duplikate und sortiert nach den Spalten, die im DISTINCT ORDER BY:()-Prädikat der Argument -Spalte angegeben sind.The Distinct Sort logical operator scans the input, removing duplicates and sorting by the columns specified in the DISTINCT ORDER BY:() predicate of the Argument column. Distinct Sort ist ein logischer Operator.Distinct Sort is a logical operator.
Distribute Streams Parallelism-Operator (Symbol)Distribute streams parallelism operator icon Distribute StreamsDistribute Streams Der Distribute Streams -Operator wird nur in parallelen Abfrageplänen verwendet.The Distribute Streams operator is used only in parallel query plans. Der Distribute Streams -Operator nimmt genau einen Eingabedatenstrom von Datensätzen an und erzeugt mehrere Ausgabedatenströme.The Distribute Streams operator takes a single input stream of records and produces multiple output streams. Inhalt und Format der Datensätze werden nicht geändert.The record contents and format are not changed. Jeder Datensatz aus dem Eingabedatenstrom wird in genau einem der Ausgabedatenströme angezeigt.Each record from the input stream appears in one of the output streams. Dieser Operator behält die relative Reihenfolge der Eingabedatensätze in den Ausgabedatenströmen bei.This operator automatically preserves the relative order of the input records in the output streams. In der Regel wird mit einem Hashingverfahren festgelegt, zu welchem Ausgabedatenstrom ein bestimmter Eingabedatensatz gehört.Usually, hashing is used to decide to which output stream a particular input record belongs.

Wenn die Ausgabe partitioniert ist, enthält die Argument -Spalte ein PARTITION COLUMNS:()-Prädikat und die Partitionierungsspalten.If the output is partitioned, then the Argument column contains a PARTITION COLUMNS:() predicate and the partitioning columns. Distribute Streams ist ein logischer Operator.Distribute Streams is a logical operator
Dynamic-Cursoroperator (Symbol)Dynamic cursor operator icon DynamicDynamic Der Dynamic -Operator verwendet einen Cursor, der alle von anderen vorgenommenen Änderungen wahrnimmt.The Dynamic operator uses a cursor that can see all changes made by others.
Spool-Operator (Symbol)Spool operator icon Eager SpoolEager Spool Der Eager Spool -Operator verarbeitet die gesamte Eingabe und speichert jede Zeile in einem verborgenen temporären Objekt in der tempdb -Datenbank.The Eager Spool operator takes the entire input, storing each row in a hidden temporary object stored in the tempdb database. Wenn der Operator zurückgesetzt wird (beispielsweise aufgrund eines Nested Loops -Operators), aber keine erneute Zuordnung erforderlich ist, werden die gespoolten Daten verwendet, anstatt die Eingabe erneut zu scannen.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input. Wenn eine erneute Zuordnung erforderlich ist, werden die gespoolten Daten gelöscht, und das Spoolobjekt wird durch erneutes Scannen der (neu zugeordneten) Eingabe neu erstellt.If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. Der Eager Spool -Operator erstellt seine Spooldatei unverzüglich: Wenn der übergeordnete Operator des Spoolvorgangs die erste Zeile anfordert, verarbeitet der Spool-Operator alle Zeilen aus dem Eingabeoperator und speichert sie im Spool.The Eager Spool operator builds its spool file in an "eager" manner: when the spool's parent operator asks for the first row, the spool operator consumes all rows from its input operator and stores them in the spool. Eager Spool ist ein logischer Operator.Eager Spool is a logical operator.
Fetch Query-Cursoroperator (Symbol)Fetch query cursor operator icon Fetch QueryFetch Query Der Fetch Query -Operator ruft Zeilen ab, wenn eine Abrufoperation für einen Cursor ausgegeben wird.The Fetch Query operator retrieves rows when a fetch is issued against a cursor.
Filter-Operator (Datenbank-Engine - Symbol)Filter (Database Engine) operator icon FilterFilter Der Filter -Operator scannt die Eingabe und gibt nur die Zeilen zurück, die den in der Argument -Spalte angezeigten Filterausdruck (Prädikat) erfüllen.The Filter operator scans the input, returning only those rows that satisfy the filter expression (predicate) that appears in the Argument column.
InclusionThresholdSettingNone Flow DistinctFlow Distinct Der logische Operator Flow Distinct scannt die Eingabe und entfernt Duplikate.The Flow Distinct logical operator scans the input, removing duplicates. Während der Distinct -Operator zuerst die gesamte Eingabe verarbeitet und dann die Ausgabe erstellt, gibt der FlowDistinct -Operator die Eingabe zeilenweise zurück (ausgenommen sind Zeilenduplikate, da diese entfernt werden).Whereas the Distinct operator consumes all input before producing any output, the FlowDistinct operator returns each row as it is obtained from the input (unless that row is a duplicate, in which case it is discarded).
InclusionThresholdSettingNone Full Outer JoinFull Outer Join Der logische Full Outer Join -Operator gibt alle Zeilen zurück, die das JOIN-Prädikat aus der ersten (oberen) Eingabe, verknüpft mit jeder Zeile aus der zweiten (unteren) Eingabe, erfüllen.The Full Outer Join logical operator returns each row satisfying the join predicate from the first (top) input joined with each row from the second (bottom) input. Er gibt außerdem die folgenden Zeilen zurück:It also returns rows from:

– Zeilen aus der ersten Eingabe, für die in der zweiten Eingabe keine Übereinstimmung besteht.-The first input that had no matches in the second input.

– Zeilen aus der zweiten Eingabe, für die in der ersten Eingabe keine Übereinstimmung besteht.-The second input that had no matches in the first input.

Eingaben, die keine übereinstimmenden Werte enthalten, werden als NULL-Wert zurückgegeben.The input that does not contain the matching values is returned as a null value. Full Outer Join ist ein logischer Operator.Full Outer Join is a logical operator.
Gather Streams Parallelism-Operator (Symbol)Gather streams parallelism operator icon Gather StreamsGather Streams Der Gather Streams -Operator wird nur in parallelen Abfrageplänen verwendet.The Gather Streams operator is only used in parallel query plans. Der Gather Streams -Operator verarbeitet mehrere Eingabedatenströme, fasst diese zusammen und erzeugt genau einen Ausgabedatenstrom von Datensätzen.The Gather Streams operator consumes several input streams and produces a single output stream of records by combining the input streams. Inhalt und Format der Datensätze werden nicht geändert.The record contents and format are not changed. Wenn dieser Operator die Reihenfolge beibehalten soll, müssen alle Eingabedatenströme entsprechend geordnet vorliegen.If this operator is order preserving, all input streams must be ordered. Wenn die Ausgabe sortiert ist, enthält die Argument -Spalte ein ORDER BY:()-Prädikat und die Namen der zu sortierenden Spalten.If the output is ordered, the Argument column contains an ORDER BY:() predicate and the names of columns being ordered. Gather Streams ist ein logischer Operator.Gather Streams is a logical operator.
Hash Match-Operator (Symbol)Hash match operator icon Hash MatchHash Match Der Hash Match -Operator erzeugt eine Hashtabelle, indem er für jede Zeile der Erstellungseingabe einen Hashwert berechnet.The Hash Match operator builds a hash table by computing a hash value for each row from its build input. Ein HASH:()-Prädikat mit einer Liste der Spalten, die zum Erstellen der Hashwerte verwendet werden, wird in der Argument -Spalte angezeigt.A HASH:() predicate with a list of columns used to create a hash value appears in the Argument column. Anschließend wird, soweit möglich, für jede Einfügezeile ein Hashwert (mithilfe derselben Hashfunktion) berechnet und in der Hashtabelle nach Übereinstimmungen gesucht.Then, for each probe row (as applicable), it computes a hash value (using the same hash function) and looks in the hash table for matches. Wenn ein RESIDUAL-Prädikat vorhanden ist (identifiziert durch RESIDUAL:() in der Argument -Spalte), müssen Zeilen auch dieses Prädikat erfüllen, um als übereinstimmend zu gelten.If a residual predicate is present (identified by RESIDUAL:() in the Argument column), that predicate must also be satisfied for rows to be considered a match. Das Verhalten des Operators hängt von dem auszuführenden logischen Vorgang ab:Behavior depends on the logical operation being performed:

– Für jeden Join wird die erste (obere) Eingabe verwendet, um die Hashtabelle zu erstellen, und die zweite (untere) Eingabe zum Einfügen in die Hashtabelle.-For any joins, use the first (top) input to build the hash table and the second (bottom) input to probe the hash table. Die Ausgabeübereinstimmungen (oder Nichtübereinstimmungen) werden vom Jointyp bestimmt.Output matches (or nonmatches) as dictated by the join type. Wenn mehrere Joins dieselbe Joinspalte verwenden, werden diese Vorgänge in einem Hashteam gruppiert.If multiple joins use the same join column, these operations are grouped into a hash team.

– Für die Operatoren Distinct oder Aggregate wird die Eingabe verwendet, um die Hashtabelle zu erstellen (wobei Duplikate entfernt und Aggregatausdrücke berechnet werden).-For the distinct or aggregate operators, use the input to build the hash table (removing duplicates and computing any aggregate expressions). Wenn die Hashtabelle erstellt ist, wird die Tabelle gescannt, und alle Einträge werden ausgegeben.When the hash table is built, scan the table and output all entries.

– Für den Union-Operator wird die erste Eingabe verwendet, um die Hashtabelle zu erstellen (wobei Duplikate entfernt werden).-For the union operator, use the first input to build the hash table (removing duplicates). Die zweite Eingabe (die keine Duplikate haben darf) wird zum Einfügen in die Hashtabelle verwendet, wobei alle nicht übereinstimmenden Zeilen zurückgegeben werden, anschließend wird die Hashtabelle gescannt, und alle Einträge werden zurückgegeben.Use the second input (which must have no duplicates) to probe the hash table, returning all rows that have no matches, then scan the hash table and return all entries.

DerHash Match -Operator ist ein physischer Operator.Hash Match is a physical operator.
If-Sprachelement (Symbol)If language element icon WennIf Der If -Operator führt eine bedingte Verarbeitung basierend auf einem Ausdruck aus.The If operator carries out conditional processing based on an expression. If ist ein Sprachelement.If is a language element.
InclusionThresholdSettingNone Inner JoinInner Join Der logische Inner Join -Operator gibt alle Zeilen zurück, die die Verknüpfung der ersten (oberen) Eingabe mit der zweiten (unteren) Eingabe erfüllen.The Inner Join logical operator returns each row that satisfies the join of the first (top) input with the second (bottom) input.
Insert (Datenbank-Engine - Operatorsymbol)Insert (Database Engine) operator icon InsertInsert Der logische Operator Insert fügt alle Eingabezeilen in das Objekt ein, das in der Argument -Spalte angegeben ist.The Insert logical operator inserts each row from its input into the object specified in the Argument column. Der physische Operator ist entweder der Table Insert-, Index Insert- oder Clustered Index Insert -Operator.The physical operator is either the Table Insert, Index Insert, or Clustered Index Insert operator.
Inserted Scan-Operator (Symbol)Inserted scan operator icon Inserted ScanInserted Scan Der Inserted Scan -Operator scannt die inserted -Tabelle.The Inserted Scan operator scans the inserted table. Inserted Scan ist sowohl ein logischer als auch ein physischer Operator.Inserted Scan is a logical and physical operator.
Intrinsic-Sprachelement (Symbol)Intrinsic language element icon IntrinsicIntrinsic Der Intrinsic -Operator ruft eine interne Transact-SQLTransact-SQL -Funktion auf.The Intrinsic operator invokes an internal Transact-SQLTransact-SQL function. Intrinsic ist ein Sprachelement.Intrinsic is a language element.
Iteratorsammelelement (Operatorsymbol)Iterator catchall operator icon IteratorIterator Das Iterator -Sammelsymbol wird angezeigt, wenn die Logik, die grafische Showplans erzeugt, kein geeignetes Symbol für den Iterator finden kann.The Iterator catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. Das Sammelsymbol zeigt nicht notwendigerweise eine Fehlerbedingung an.The catchall icon does not necessarily indicate an error condition. Es stehen drei Sammelsymbole zur Verfügung: blau (für Iteratoren), orange (für Cursor) und grün (für Transact-SQLTransact-SQL -Sprachkonstrukte).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language constructs).
Bookmark Lookup-Operator (Symbol)Bookmark lookup operator icon Key LookupKey Lookup Der Key Lookup -Operator stellt eine Lesezeichensuche für eine Tabelle mit einem gruppierten Index dar.The Key Lookup operator is a bookmark lookup on a table with a clustered index. Die Argument -Spalte enthält den Namen des gruppierten Indexes und den Gruppierungsschlüssel, der für die Suche nach der Zeile im gruppierten Index verwendet wird.The Argument column contains the name of the clustered index and the clustering key used to look up the row in the clustered index. Key Lookup wird stets von einem Nested Loops -Operator begleitet.Key Lookup is always accompanied by a Nested Loops operator. Wenn die WITH PREFETCH-Klausel in der Argument -Spalte auftritt, wurde vom Abfrageprozessor ermittelt, dass Lesezeichen im gruppierten Index am besten mit asynchronem Vorauslesen (Read-Ahead) nachgeschlagen werden sollten.If the WITH PREFETCH clause appears in the Argument column, the query processor has determined that it is optimal to use asynchronous prefetching (read-ahead) when looking up bookmarks in the clustered index.

Durch die Verwendung eines Key Lookup -Operators in einem Abfrageplan wird angegeben, dass für die Abfrage eine Leistungsoptimierung von Vorteil sein könnte.The use of a Key Lookup operator in a query plan indicates that the query might benefit from performance tuning. Beispielsweise kann die Leistung durch Hinzufügen eines abdeckenden Indexes optimiert werden.For example, query performance might be improved by adding a covering index.
Keyset-Cursoroperator (Symbol)Keyset cursor operator icon KeysetKeyset Der Keyset -Operator verwendet einen Cursor, für den Aktualisierungen sichtbar sind, jedoch keine von anderen vorgenommenen Einfügungen.The Keyset operator uses a cursor that can see updates, but not inserts made by others.
Sprachsammelelement (Symbol)Language element catchall icon Language-ElementLanguage Element Das Language Element -Sammelsymbol wird angezeigt, wenn die Logik, die grafische Showplans erzeugt, kein geeignetes Symbol für den Iterator finden kann.The Language Element catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. Das Sammelsymbol zeigt nicht notwendigerweise eine Fehlerbedingung an.The catchall icon does not necessarily indicate an error condition. Es stehen drei Sammelsymbole zur Verfügung: blau (für Iteratoren), orange (für Cursor) und grün (für Transact-SQLTransact-SQL -Sprachkonstrukte).There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language constructs).
Spool-Operator (Symbol)Spool operator icon Lazy SpoolLazy Spool Der logische Operator Lazy Spool speichert alle Zeilen aus der Eingabe in einem verborgenen temporären Objekt in der tempdb -Datenbank.The Lazy Spool logical operator stores each row from its input in a hidden temporary object stored in the tempdb database. Wenn der Operator zurückgesetzt wird (beispielsweise aufgrund eines Nested Loops -Operators), aber keine erneute Zuordnung erforderlich ist, werden die gespoolten Daten verwendet, anstatt die Eingabe erneut zu scannen.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input. Wenn eine erneute Zuordnung erforderlich ist, werden die gespoolten Daten gelöscht, und das Spoolobjekt wird durch erneutes Scannen der (neu zugeordneten) Eingabe neu erstellt.If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. Der Lazy Spool -Operator erstellt seine Spooldatei mit Verzögerung. Das bedeutet, dass der Spooloperator jedes Mal, wenn der übergeordnete Operator des Spoolvorgangs eine Zeile anfordert, eine Zeile aus seinem Eingabeoperator erhält und sie im Spool speichert, anstatt alle Zeilen gleichzeitig zu verarbeiten.The Lazy Spool operator builds its spool file in a "lazy" manner, that is, each time the spool's parent operator asks for a row, the spool operator gets a row from its input operator and stores it in the spool, rather than consuming all rows at once. Lazy Spool ist ein logischer Operator.Lazy Spool is a logical operator.
InclusionThresholdSettingNone Left Anti Semi JoinLeft Anti Semi Join Der Left Anti Semi Join -Operator gibt jede Zeile aus der ersten (oberen) Eingabe zurück, für die keine übereinstimmende Zeile in der zweiten (unteren) Eingabe vorhanden ist.The Left Anti Semi Join operator returns each row from the first (top) input when there is no matching row in the second (bottom) input. Wenn kein Joinprädikat in der Argument -Spalte vorhanden ist, stellt jede Zeile eine übereinstimmende Zeile dar.If no join predicate exists in the Argument column, each row is a matching row. Left Anti Semi Join ist ein logischer Operator.Left Anti Semi Join is a logical operator.
InclusionThresholdSettingNone Left Outer JoinLeft Outer Join Der Left Outer Join -Operator gibt alle Zeilen zurück, die die Verknüpfung der ersten (oberen) Eingabe mit der zweiten (unteren) Eingabe erfüllen.The Left Outer Join operator returns each row that satisfies the join of the first (top) input with the second (bottom) input. Er gibt auch alle Zeilen aus der ersten Eingabe zurück, für die keine übereinstimmende Zeile in der zweiten Eingabe vorhanden ist.It also returns any rows from the first input that had no matching rows in the second input. Die nicht übereinstimmenden Zeilen in der zweiten Eingabe werden als NULL-Werte zurückgegeben.The nonmatching rows in the second input are returned as null values. Wenn kein Joinprädikat in der Argument -Spalte vorhanden ist, stellt jede Zeile eine übereinstimmende Zeile dar.If no join predicate exists in the Argument column, each row is a matching row. Left Outer Join ist ein logischer Operator.Left Outer Join is a logical operator.
InclusionThresholdSettingNone Left Semi JoinLeft Semi Join Der Left Semi Join -Operator gibt jede Zeile aus der ersten (oberen) Eingabe zurück, für die eine übereinstimmende Zeile in der zweiten (unteren) Eingabe vorhanden ist.The Left Semi Join operator returns each row from the first (top) input when there is a matching row in the second (bottom) input. Wenn kein Joinprädikat in der Argument -Spalte vorhanden ist, stellt jede Zeile eine übereinstimmende Zeile dar.If no join predicate exists in the Argument column, each row is a matching row. Left Semi Join ist ein logischer Operator.Left Semi Join is a logical operator.
Log Row Scan-Operator (Symbol)Log row scan operator icon Log Row ScanLog Row Scan Der Log Row Scan -Operator scannt das Transaktionsprotokoll.The Log Row Scan operator scans the transaction log. Log Row Scan ist sowohl ein logischer als auch ein physischer Operator.Log Row Scan is a logical and physical operator.
Merge Interval-Operator (Symbol)Merge interval operator icon Merge IntervalMerge Interval Der Operator Merge Interval führt mehrere (möglicherweise überlappende) Intervalle zusammen, um minimale, nicht überlappende Intervalle zu erzeugen, die anschließend zum Suchen von Indexeinträgen verwendet werden.The Merge Interval operator merges multiple (potentially overlapping) intervals to produce minimal, nonoverlapping intervals that are then used to seek index entries. Dieser Operator erscheint in der Regel über einem oder mehreren Compute Scalar -Operatoren, die wiederum über Constant Scan -Operatoren erscheinen, welche die von diesem Operator (als Spalten in einer Zeile dargestellten) zu mischenden Intervalle aufbauen.This operator typically appears above one or more Compute Scalar operators over Constant Scan operators, which construct the intervals (represented as columns in a row) that this operator merges. Merge Interval ist sowohl ein logischer als auch physischer Operator.Merge Interval is a logical and physical operator.
Merge Join-Operator (Symbol)Merge join operator icon Merge JoinMerge Join Der Merge Join -Operator führt die logischen Vorgänge „innere Verknüpfung“, „linke äußere Verknüpfung“, „linke Semiverknüpfung“, „linke Antisemiverknüpfung“, „rechte äußere Verknüpfung“, „rechte Semiverknüpfung“, „rechte Antisemiverknüpfung“ und „Vereinigung“ aus.The Merge Join operator performs the inner join, left outer join, left semi join, left anti semi join, right outer join, right semi join, right anti semi join, and union logical operations.

In der Argument -Spalte enthält der Merge Join -Operator ein MERGE:()-Prädikat, wenn der Vorgang einen 1:n-Join ausführt, oder ein MANY-TO-MANY MERGE:()-Prädikat, wenn der Vorgang einen m:n-Join ausführt.In the Argument column, the Merge Join operator contains a MERGE:() predicate if the operation is performing a one-to-many join, or a MANY-TO-MANY MERGE:() predicate if the operation is performing a many-to-many join. Die Argument -Spalte schließt auch eine durch Trennzeichen getrennte Liste der Spalten ein, die bei der Ausführung des Vorgangs verwendet wurden.The Argument column also includes a comma-separated list of columns used to perform the operation. Der Merge Join -Operator benötigt zwei Eingaben, die nach den jeweiligen Spalten sortiert sind, möglicherweise durch Einfügen von expliziten Sortiervorgängen in den Abfrageplan.The Merge Join operator requires two inputs sorted on their respective columns, possibly by inserting explicit sort operations into the query plan. Ein Zusammenführungsjoin ist vor allem effizient, wenn kein expliziter Sortiervorgang erforderlich ist, beispielsweise wenn ein geeigneter B-Struktur-Index in der Datenbank vorhanden ist oder die Datenbank für mehrere Vorgänge, z. B. ein Zusammenführungsjoin und Gruppierung mit Rollup, verwendet werden kann.Merge join is particularly effective if explicit sorting is not required, for example, if there is a suitable B-tree index in the database or if the sort order can be exploited for multiple operations, such as a merge join and grouping with roll up. BeiMerge Join handelt es sich um einen physischen Operator.Merge Join is a physical operator.
Nested Loops-Operator (Symbol)Nested loops operator icon Nested LoopsNested Loops Der Nested Loops -Operator führt die logischen Operationen „innere Verknüpfung“, „linke äußere Verknüpfung“, „linke Semiverknüpfung“ und „linke Antisemiverknüpfung“ aus.The Nested Loops operator performs the inner join, left outer join, left semi join, and left anti semi join logical operations. Nested Loops-Joins führen für jede Zeile der äußeren Tabelle eine Suche in der inneren Tabelle aus, in der Regel mithilfe eines Indexes.Nested loops joins perform a search on the inner table for each row of the outer table, typically using an index. Der Abfrageprozessor legt auf der Grundlage der geschätzten Kosten fest, ob die äußere Eingabe sortiert werden soll, um die Treffsicherheit der Suchvorgänge auf dem Index über die innere Eingabe zu verbessern.The query processor decides, based on anticipated costs, whether to sort the outer input in order to improve locality of the searches on the index over the inner input. Alle Zeilen, die das (optionale) Prädikat in der Argument -Spalte erfüllen, werden auf der Grundlage der ausgeführten logischen Operation als anwendbar zurückgegeben.Any rows that satisfy the (optional) predicate in the Argument column are returned as applicable, based on the logical operation being performed. Nested Loops ist ein physischer Operator.Nested Loops is a physical operator.
Nonclustered Index Delete-Operator (Symbol)Nonclustered index delete operator icon Nonclustered Index DeleteNonclustered Index Delete Der Operator Nonclustered Index Delete löscht Eingabezeilen aus dem in der Argument -Spalte angegebenen nicht gruppierten Index.The Nonclustered Index Delete operator deletes input rows from the nonclustered index specified in the Argument column. Nonclustered Index Delete ist ein physischer Operator.Nonclustered Index Delete is a physical operator.
Nonclustered Index Insert-Operator (Symbol)Nonclustered index insert operator icon Index InsertIndex Insert Mithilfe des Index Insert -Operators werden Zeilen aus der Eingabe in den nicht gruppierten Index eingegeben, der in der Argument -Spalte angegeben ist.The Index Insert operator inserts rows from its input into the nonclustered index specified in the Argument column. Die Argument -Spalte enthält auch ein SET:()-Prädikat, mit dem der Wert angegeben wird, auf den die einzelnen Spalten festgelegt sind.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Index Insert ist ein physischer Operator.Index Insert is a physical operator.
Nonclustered Index Scan-Operator (Symbol)Nonclustered index scan operator icon Index ScanIndex Scan Der Index Scan -Operator ruft alle Zeilen des nicht gruppierten Indexes ab, der in der Argument -Spalte angegeben ist.The Index Scan operator retrieves all rows from the nonclustered index specified in the Argument column. Wenn ein optionales WHERE:()-Prädikat in der Argument -Spalte vorhanden ist, werden nur die Zeilen zurückgegeben, die das Prädikat erfüllen.If an optional WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Index Scan ist ein logischer und physischer Operator.Index Scan is a logical and physical operator.
Nonclustered Index Seek-Operator (Symbol)Nonclustered index seek operator icon Index SeekIndex Seek Der Index Seek -Operator verwendet die Suchfunktionen der Indizes, um Zeilen aus einem nicht gruppierten Index abzurufen.The Index Seek operator uses the seeking ability of indexes to retrieve rows from a nonclustered index. Die Argument -Spalte enthält den Namen des verwendeten nicht gruppierten Indexes.The Argument column contains the name of the nonclustered index being used. Außerdem enthält sie auch das SEEK:()-Prädikat.It also contains the SEEK:() predicate. Mit diesem Index werden von der Speicher-Engine nur die Zeilen verarbeitet, die das SEEK:()-Prädikat erfüllen.The storage engine uses the index to process only those rows that satisfy the SEEK:() predicate. Optional kann ein WHERE:()-Prädikat enthalten sein, das von der Speicher-Engine für alle Zeilen ausgewertet wird, bei denen das SEEK:()-Prädikat erfüllt wird (es werden hierfür keine Indizes verwendet).It optionally may include a WHERE:() predicate, which the storage engine will evaluate against all rows that satisfy the SEEK:() predicate (it does not use the indexes to do this). Wenn die Argument -Spalte die ORDERED-Klausel enthält, hat der Abfrageprozessor ermittelt, dass die Zeilen in der Reihenfolge zurückgegeben werden müssen, in der sie vom nicht gruppierten Index sortiert wurden.If the Argument column contains the ORDERED clause, the query processor has determined that the rows must be returned in the order in which the nonclustered index has sorted them. Wurde die ORDERED-Klausel nicht angegeben, so durchsucht die Speicher-Engine den Index auf die optimale Art (wobei die Ausgabe nicht unbedingt sortiert ist).If the ORDERED clause is not present, the storage engine searches the index in the optimal way (which does not guarantee that the output will be sorted). Die Ausgabe in der ursprünglichen Reihenfolge kann weniger effizient sein als die unsortierte Ausgabe.Allowing the output to retain its ordering may be less efficient than producing nonsorted output. Index Seek ist ein logischer und physischer Operator.Index Seek is a logical and physical operator.
Nonclustered Index Spool-Operator (Symbol)Nonclustered index spool operator icon Index SpoolIndex Spool Der physische Operator Index Spool enthält ein SEEK:()-Prädikat in der Argument -Spalte.The Index Spool physical operator contains a SEEK:() predicate in the Argument column. Der physische Index Spool -Operator scannt die Eingabezeilen, platziert eine Kopie jeder Zeile in einer verborgenen Spooldatei (die in der tempdb -Datenbank gespeichert und nur für die Lebensdauer der Abfrage vorhanden ist) und erstellt einen nicht gruppierten Index für die Zeilen.The Index Spool operator scans its input rows, placing a copy of each row in a hidden spool file (stored in the tempdb database and existing only for the lifetime of the query), and builds a nonclustered index on the rows. Dies ermöglicht es Ihnen, mithilfe der Indexsuchfunktionen nur die Zeilen auszugeben, die das SEEK:()-Prädikat erfüllen.This allows you to use the seeking capability of indexes to output only those rows that satisfy the SEEK:() predicate. Wenn der Operator zurückgesetzt wird (beispielsweise aufgrund eines Nested Loops -Operators), aber keine erneute Zuordnung erforderlich ist, werden die gespoolten Daten verwendet, anstatt die Eingabe erneut zu scannen.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input.
Nonclustered Index Update-Operator (Symbol)Nonclustered index update operator icon Nonclustered Index UpdateNonclustered Index Update Der physische Operator Nonclustered Index Update aktualisiert Eingabezeilen in dem nicht gruppierten Index, der in der Argument -Spalte angegeben ist.The Nonclustered Index Update physical operator updates rows from its input in the nonclustered index specified in the Argument column. Wenn ein SET:()-Prädikat vorhanden ist, wird jede aktualisierte Spalte auf diesen Wert festgelegt.If a SET:() predicate is present, each updated column is set to this value. Nonclustered Index Update ist ein physischer Operator.Nonclustered Index Update is a physical operator.
Online Index Insert-Operator (Symbol)Online index insert operator icon Online Index InsertOnline Index Insert Der physische Operator Online Index Insert gibt an, dass ein Index online erstellt, geändert oder gelöscht wird.The Online Index Insert physical operator indicates that an index create, alter, or drop operation is performed online. Die zugrunde liegenden Tabellendaten bleiben daher während des Indexvorgangs für Benutzer verfügbar.That is, the underlying table data remains available to users during the index operation.
InclusionThresholdSettingNone ParallelismParallelism Der Parallelism-Operator (oder Exchange-Iterator) führt die logischen Operationen Distribute Streams, Gather Streams und Repartition Streams durch.The Parallelism operator (or Exchange Iterator) performs the distribute streams, gather streams, and repartition streams logical operations. Die Argument -Spalten können ein PARTITION COLUMNS:()-Prädikat mit einer durch Trennzeichen getrennten Liste der zu partitionierenden Spalten enthalten.The Argument columns can contain a PARTITION COLUMNS:() predicate with a comma-separated list of the columns being partitioned. Außerdem können die Argument -Spalten ein ORDER BY:()-Prädikat enthalten, das durch Auflisten der Spalten die Sortierreihenfolge bei der Partitionierung beibehält.The Argument columns can also contain an ORDER BY:() predicate, listing the columns to preserve the sort order for during partitioning. Parallelism ist ein physischer Operator.Parallelism is a physical operator. Weitere Informationen zum Parallelism-Operator finden Sie in der Blogreihe von Craig Freedman.For more information about the Parallelism operator, see Craig Freedman’s blog series.

Hinweis: Wenn eine Abfrage als parallele Abfrage kompiliert wurde, aber zur Laufzeit als serielle Abfrage ausgeführt wird, enthält die entweder mit SET STATISTICS XML oder mit der Option Tatsächlichen Ausführungsplan einschließen von SQL Server Management StudioSQL Server Management Studio generierte Showplanausgabe kein RunTimeInformation-Element für den Parallelism-Operator.Note: If a query has been compiled as a parallel query, but at run time it is run as a serial query, the Showplan output generated by SET STATISTICS XML or by using the Include Actual Execution Plan option in SQL Server Management StudioSQL Server Management Studio will not contain the RunTimeInformation element for the Parallelism operator. In der SET STATISTICS PROFILE-Ausgabe werden für die tatsächliche Anzahl der Zeilen sowie die tatsächliche Anzahl der Ausführungen Nullen für den Parallelism -Operator angezeigt.In SET STATISTICS PROFILE output, the actual row counts and actual number of executes will display zeroes for the Parallelism operator. Tritt eine der Bedingungen auf, bedeutet dies, dass der Parallelism -Operator nur während der Kompilierung der Abfrage, nicht aber im Laufzeitabfrageplan verwendet wurde.When either condition occurs, it means that the Parallelism operator was only used during query compilation and not in the run-time query plan. Beachten Sie, dass parallele Abfragepläne mitunter seriell ausgeführt werden, wenn der Server stark ausgelastet ist.Note that sometimes parallel query plans are run in serial if there is a high concurrent load on the server.
Parameter Table Scan-Operator (Symbol)Parameter table scan operator icon Parameter Table ScanParameter Table Scan Der Parameter Table Scan -Operator scannt eine Tabelle, die als Parameter in der aktuellen Abfrage dient.The Parameter Table Scan operator scans a table that is acting as a parameter in the current query. In der Regel wird dieser Operator für INSERT-Abfragen in einer gespeicherten Prozedur verwendet.Typically, this is used for INSERT queries within a stored procedure. Parameter Table Scan ist ein logischer und physischer Operator.Parameter Table Scan is a logical and physical operator.
InclusionThresholdSettingNone Partial AggregatePartial Aggregate Partial Aggregate wird in parallelen Plänen verwendet.Partial Aggregate is used in parallel plans. Hiermit wird eine Aggregatfunktion auf möglichst viele Eingabezeilen angewandt, damit das Schreiben auf den Datenträger (der so genannte "Überlauf") nicht erforderlich ist.It applies an aggregation function to as many input rows as possible so that writing to disk (known as a "spill") is not necessary. Hash Match ist der einzige physische Operator (Iterator), der die Partitionsaggregation implementiert.Hash Match is the only physical operator (iterator) that implements partition aggregation. Partial Aggregate ist ein logischer Operator.Partial Aggregate is a logical operator.
Population Query-Cursoroperator (Symbol)Population query cursor operator icon Population QueryPopulation Query Der Population Query -Operator füllt die Arbeitstabelle eines Cursors auf, wenn der Cursor geöffnet wird.The Population Query operator populates the work table of a cursor when the cursor is opened.
Refresh Query-Cursoroperator (Symbol)Refresh query cursor operator icon Refresh QueryRefresh Query Der Refresh Query -Operator ruft aktuelle Daten für die Zeilen im Fetchpuffer ab.The Refresh Query operator fetches current data for rows in the fetch buffer.
Remote Delete-Operator (Symbol)Remote delete operator icon Remote DeleteRemote Delete Der Remote Delete -Operator löscht die Eingabezeilen in einem Remoteobjekt.The Remote Delete operator deletes the input rows from a remote object. Remote Delete ist ein logischer und physischer Operator.Remote Delete is a logical and physical operator.
Remote Index Seek-Showplanoperatorremote index seek showplan operator Remote Index ScanRemote Index Scan Der Remote Index Scan -Operator durchsucht den in der Argumentspalte angegebenen Remoteindex.The Remote Index Scan operator scans the remote index specified in the Argument column. Remote Index Scan ist ein logischer und physischer Operator.Remote Index Scan is a logical and physical operator.
Remote Index Seek-Showplanoperatorremote index seek showplan operator Remote Index SeekRemote Index Seek Der Remote Index Seek -Operator verwendet die Suchmöglichkeiten eines Remoteindexobjekts, um Zeilen abzurufen.The Remote Index Seek operator uses the seeking ability of a remote index object to retrieve rows. Die Argument -Spalte enthält den Namen des verwendeten Remoteindexes und das SEEK:()-Prädikat.The Argument column contains the name of the remote index being used and the SEEK:() predicate. Remote Index Seek ist ein logischer und physischer Operator.Remote Index Seek is a logical physical operator.
Remote Insert-Operator (Symbol)Remote insert operator icon Remote InsertRemote Insert Der Remote Insert -Operator fügt die Eingabezeilen in ein Remoteobjekt ein.The Remote Insert operator inserts the input rows into a remote object. Remote Insert ist ein logischer und physischer Operator.Remote Insert is a logical and physical operator.
Remote Query-Operator (Symbol)Remote query operator icon Remote QueryRemote Query Durch den Operator Remote Query wird eine Abfrage an eine Remotequelle übermittelt.The Remote Query operator submits a query to a remote source. Der Text der an den Remoteserver gesendeten Abfrage wird in der Argument -Spalte angezeigt.The text of the query sent to the remote server appears in the Argument column. Remote Query ist ein logischer und physischer Operator.Remote Query is a logical and physical operator.
Remote Scan-Operator (Symbol)Remote scan operator icon Remote ScanRemote Scan Der Operator Remote Scan überprüft ein Remoteobjekt.The Remote Scan operator scans a remote object. Der Name des Remoteobjekts wird in der Argument-Spalte angezeigt.The name of the remote object appears in the Argument column. Remote Scan ist ein logischer und physischer Operator.Remote Scan is a logical and physical operator.
Remote Update-Operator (Symbol)Remote update operator icon Remote UpdateRemote Update Der Remote Update -Operator aktualisiert die Eingabezeilen in einem Remoteobjekt.The Remote Update operator updates the input rows in a remote object. Remote Update ist ein logischer und physischer Operator.Remote Update is a logical and physical operator.
Repartition Streams Parallelism-Operator (Symbol)Repartition streams parallelism operator icon Repartition StreamsRepartition Streams Der Repartition Streams-Operator (oder Exchange-Iterator) verarbeitet und generiert mehrere Datenströme mit Datensätzen.The Repartition Streams operator (or exchange iterator) consumes multiple streams and produces multiple streams of records. Inhalt und Format der Datensätze werden nicht geändert.The record contents and format are not changed. Wenn der Abfrageoptimierer einen Bitmapfilter verwendet, wird die Anzahl der Zeilen im Ausgabedatenstrom reduziert.If the query optimizer uses a bitmap filter, the number of rows in the output stream is reduced. Jeder Datensatz aus einem Eingabedatenstrom wird in einem Ausgabedatenstrom platziert.Each record from an input stream is placed into one output stream. Wenn dieser Operator die Reihenfolge beibehalten soll, müssen alle Eingabedatenströme entsprechend geordnet vorliegen und in mehrere geordnete Ausgabedatenströme zusammengeführt werden.If this operator is order preserving, all input streams must be ordered and merged into several ordered output streams. Wenn die Ausgabe partitioniert wurde, enthält die Argument -Spalte ein PARTITION COLUMNS:()-Prädikat sowie die Partitionierungsspalten. Wenn die Ausgabe sortiert wurde, enthält die Argument -Spalte ein ORDER BY:()-Prädikat und die sortierten Spalten.If the output is partitioned, the Argument column contains a PARTITION COLUMNS:() predicate and the partitioning columns.If the output is ordered, the Argument column contains an ORDER BY:() predicate and the columns being ordered. Repartition Streams ist ein logischer Operator.Repartition Streams is a logical operator. Der Operator wird nur in parallelen Abfrageplänen verwendet.The operator is used only in parallel query plans.
Result-Sprachelement (Symbol)Result language element icon ErgebnisResult Der Result -Operator stellt die Daten dar, die am Ende eines Abfrageplans zurückgegeben werden.The Result operator is the data returned at the end of a query plan. Dies ist normalerweise das Stammelement eines Showplans.This is usually the root element of a Showplan. Result ist ein Sprachelement.Result is a language element.
RID Lookup-Operator (Symbol)RID lookup operator icon RID LookupRID Lookup RID Lookup ist ein Bookmark Lookup für einen Heap, der eine bereitgestellte Zeilen-ID (RID) verwendet.RID Lookup is a bookmark lookup on a heap using a supplied row identifier (RID). Die Argument -Spalte enthält die Lesezeichenbeschriftung, mit der die Zeile in der Tabelle nachgeschlagen wird, und den Namen der Tabelle, in der die Zeile nachgeschlagen wird.The Argument column contains the bookmark label used to look up the row in the table and the name of the table in which the row is looked up. RID Lookup wird stets durch eine NESTED LOOP JOIN-Anweisung begleitet.RID Lookup is always accompanied by a NESTED LOOP JOIN. RID Lookup ist ein physischer Operator.RID Lookup is a physical operator. Weitere Informationen zu Bookmark Lookups finden Sie unter „Bookmark Lookup“ im SQL Server-Blog von MSDN.For more information about bookmark lookups, see "Bookmark Lookup" on the MSDN SQL Server blog.
InclusionThresholdSettingNone Right Anti Semi JoinRight Anti Semi Join Der logische Operator Right Anti Semi Join gibt alle Zeilen aus der zweiten (unteren) Eingabe aus, für die keine übereinstimmende Zeile in der ersten (oberen) Eingabe vorhanden ist.The Right Anti Semi Join operator outputs each row from the second (bottom) input when a matching row in the first (top) input does not exist. Eine Zeile ist als übereinstimmende Zeile definiert, wenn das Prädikat in der Argument -Spalte erfüllt wird (bei fehlendem Prädikat sind alle Zeilen übereinstimmende Zeilen).A matching row is defined as a row that satisfies the predicate in the Argument column (if no predicate exists, each row is a matching row). Right Anti Semi Join ist ein logischer Operator.Right Anti Semi Join is a logical operator.
InclusionThresholdSettingNone Right Outer JoinRight Outer Join Der Right Outer Join -Operator gibt alle Zeilen zurück, die den Join der zweiten (unteren) Eingabe mit der ersten (oberen) Eingabe erfüllen.The Right Outer Join operator returns each row that satisfies the join of the second (bottom) input with each matching row from the first (top) input. Er gibt auch alle Zeilen aus der zweiten Eingabe mit NULL-Werten zurück, für die keine übereinstimmende Zeile in der ersten Eingabe vorhanden ist.It also returns any rows from the second input that had no matching rows in the first input, joined with NULL. Wenn kein Joinprädikat in der Argument -Spalte vorhanden ist, stellt jede Zeile eine übereinstimmende Zeile dar.If no join predicate exists in the Argument column, each row is a matching row. Right Outer Join ist ein logischer Operator.Right Outer Join is a logical operator.
InclusionThresholdSettingNone Right Semi JoinRight Semi Join Der Right Semi Join -Operator gibt alle Zeilen aus der zweiten (unteren) Eingabe zurück, für die eine übereinstimmende Zeile in der ersten (oberen) Eingabe vorhanden ist.The Right Semi Join operator returns each row from the second (bottom) input when there is a matching row in the first (top) input. Wenn kein Joinprädikat in der Argument -Spalte vorhanden ist, stellt jede Zeile eine übereinstimmende Zeile dar.If no join predicate exists in the Argument column, each row is a matching row. Right Semi Join ist ein logischer Operator.Right Semi Join is a logical operator.
Row Count Spool-Operator (Symbo)lRow count spool operator icon Row Count SpoolRow Count Spool Der Row Count Spool -Operator scannt die Eingabe, zählt, wie viele Zeilen vorhanden sind, und gibt dieselbe Anzahl an leeren Zeilen zurück.The Row Count Spool operator scans the input, counting how many rows are present and returning the same number of rows without any data in them. Dieser Operator wird verwendet, wenn es darauf ankommt, die Existenz von Zeilen und nicht ihren Inhalt zu überprüfen.This operator is used when it is important to check for the existence of rows, rather than the data contained in the rows. Wenn beispielsweise ein Nested Loops -Operator einen Left Semi Join-Vorgang ausführt, wobei das Joinprädikat auf die innere Eingabe angewendet wird, kann ein Row Count Spool-Operator ganz am Anfang der inneren Eingabe des Nested Loops -Operators platziert werden.For example, if a Nested Loops operator performs a left semi join operation and the join predicate applies to inner input, a row count spool may be placed at the top of the inner input of the Nested Loops operator. Anschließend kann der Nested Loops -Operator bestimmen, wie viele Zeilen vom Row Count Spool-Operator ausgegeben wurden (die inneren Daten werden hierzu nicht benötigt), um zu ermitteln, ob die äußere Zeile zurückgegeben werden muss.Then the Nested Loops operator can determine how many rows are output by the row count spool (because the actual data from the inner side is not needed) to determine whether to return the outer row. BeimRow Count Spool -Operator handelt es sich um einen physischen Operator.Row Count Spool is a physical operator.
Segment-Operator (Symbol)Segment operator icon SegmentSegment Segment ist ein physischer und logischer Operator.Segment is a physical and a logical operator. Dieser Operator teilt die Eingabeset basierend auf dem Wert von mindestens einer Spalte in Segmente auf.It divides the input set into segments based on the value of one or more columns. Diese Spalten werden als Argumente im Operator Segment angezeigt.These columns are shown as arguments in the Segment operator. Anschließend gibt der Operator ein Segment nach dem anderen aus.The operator then outputs one segment at a time.
InclusionThresholdSettingNone Segment RepartitionSegment Repartition Ein paralleler Abfrageplan kann mitunter logische Bereiche von Iteratoren enthalten.In a parallel query plan, sometimes there are conceptual regions of iterators. Alle Iteratoren innerhalb eines solchen Bereichs können durch parallele Threads ausgeführt werden.All of the iterators within such a region can be executed by parallel threads. Die Bereiche selbst müssen seriell ausgeführt werden.The regions themselves must be executed serially. Bestimmte Parallelism -Iteratoren innerhalb eines einzelnen Bereichs werden Branch Repartitiongenannt.Some of the Parallelism iterators within an individual region are called Branch Repartition. Der Parallelism -Iterator an der Grenze zwischen zwei Bereichen wird Segment Repartitiongenannt.The Parallelism iterator at the boundary of two such regions is called Segment Repartition. SowohlBranch Repartition als auch Segment Repartition sind logische Operatoren.Branch Repartition and Segment Repartition are logical operators.
Sequence-Operator (Symbol)Sequence operator icon SequenzSequence Der Sequence -Operator steuert umfangreiche Aktualisierungspläne.The Sequence operator drives wide update plans. Er führt die Eingaben sequenziell aus (von oben nach unten).Functionally, it executes each input in sequence (top to bottom). Jede Eingabe stellt in der Regel ein Update eines anderen Objekts dar.Each input is usually an update of a different object. Der Operator gibt nur die Zeilen zurück, die aus der letzten (unteren) Eingabe stammen.It returns only those rows that come from its last (bottom) input. Sequence ist sowohl ein logischer als auch physischer Operator.Sequence is a logical and physical operator.
Sequence Project-Operator (Symbol)Sequence project operator icon Sequence ProjectSequence Project Der Sequence Project -Operator fügt Spalten hinzu, um für eine geordnete Menge Berechnungen auszuführen.The Sequence Project operator adds columns to perform computations over an ordered set. Dieser Operator teilt die Eingabeset basierend auf dem Wert von mindestens einer Spalte in Segmente auf.It divides the input set into segments based on the value of one or more columns. Anschließend gibt der Operator ein Segment nach dem anderen aus.The operator then outputs one segment at a time. Diese Spalten werden als Argumente im Operator Sequence Project angezeigt.These columns are shown as arguments in the Sequence Project operator. Sequence Project ist ein logischer und physischer Operator.Sequence Project is a logical and physical operator.
Momentaufnahme-Cursoroperator (Symbol)Snapshot cursor operator icon MomentaufnahmeSnapshot Mit dem Snapshot -Operator wird ein Cursor erstellt, der von anderen vorgenommene Änderungen nicht wahrnimmt.The Snapshot operator creates a cursor that does not see changes made by others.
Sort-Operator (Symbol)Sort operator icon SortSort Der Sort -Operator sortiert alle eingehenden Zeilen.The Sort operator sorts all incoming rows. Die Argument -Spalte enthält entweder ein DISTINCT ORDER BY:()-Prädikat, wenn Duplikate aus dieser Operation entfernt werden sollen, oder sie enthält ein ORDER BY:()-Prädikat mit einer durch Trennzeichen getrennten Liste der zu sortierenden Spalten.The Argument column contains either a DISTINCT ORDER BY:() predicate if duplicates are removed by this operation, or an ORDER BY:() predicate with a comma-separated list of the columns being sorted. Die Spalten werden mit dem Präfix ASC versehen, wenn sie in aufsteigender Reihenfolge sortiert werden, oder mit der Zeichenfolge DESC, wenn sie in absteigender Reihenfolge sortiert werden.The columns are prefixed with the value ASC if the columns are sorted in ascending order, or the value DESC if the columns are sorted in descending order. Sort ist ein logischer und physischer Operator.Sort is a logical and physical operator.
Split-Operator (Symbol)Split operator icon SplitSplit Der Split -Operator wird zum Optimieren der Aktualisierungsverarbeitung verwendet.The Split operator is used to optimize update processing. Er teilt jeden Aktualisierungsvorgang in einen Lösch- und einen Einfügevorgang auf.It splits each update operation into a delete and an insert operation. Split ist ein logischer und physischer Operator.Split is a logical and physical operator.
Spool-Operator (Symbol)Spool operator icon SpoolSpool Mit dem Spool -Operator wird ein Zwischenabfrageergebnis in die tempdb -Datenbank geschrieben.The Spool operator saves an intermediate query result to the tempdb database.
Stream Aggregate-Operator (Symbol)Stream aggregate operator icon Stream AggregateStream Aggregate Der Stream Aggregate -Operator gruppiert Zeilen nach einer oder mehreren Spalten und berechnet einen oder mehrere Aggregatausdrücke, die von der Abfrage zurückgegeben wurden.The Stream Aggregate operator groups rows by one or more columns and then calculates one or more aggregate expressions returned by the query. Auf die Ausgabe dieses Operators kann durch spätere Operatoren in der Abfrage verwiesen werden, die Ausgabe kann an den Client zurückgegeben werden oder beides.The output of this operator can be referenced by later operators in the query, returned to the client, or both. Für den Stream Aggregate -Operator muss die Eingabe innerhalb der Gruppen nach den Spalten sortiert sein.The Stream Aggregate operator requires input ordered by the columns within its groups. Der Optimierer verwendet vor diesem Operator einen Sort -Operator, wenn die Daten nicht bereits durch einen vorherigen Sort -Operator oder durch einen geordneten Indexsuch- oder Scanvorgang sortiert wurden.The optimizer will use a Sort operator prior to this operator if the data is not already sorted due to a prior Sort operator or due to an ordered index seek or scan. In der SHOWPLAN_ALL-Anweisung oder im grafischen Ausführungsplan in SQL Server Management StudioSQL Server Management Studiosind die Spalten im GROUP BY-Prädikat in der Spalte Argument aufgelistet, und die Aggregatausdrücke sind in der Spalte Defined Values aufgelistet.In the SHOWPLAN_ALL statement or the graphical execution plan in SQL Server Management StudioSQL Server Management Studio, the columns in the GROUP BY predicate are listed in the Argument column, and the aggregate expressions are listed in the Defined Values column. Stream Aggregate ist ein physischer Operator.Stream Aggregate is a physical operator.
Switch-Operator (Symbol)Switch operator icon SchalterSwitch Switch ist ein spezieller Verkettungsiterator, der über n Eingaben verfügt.Switch is a special type of concatenation iterator that has n inputs. Mit jedem Switch -Operator ist ein Ausdruck verbunden.An expression is associated with each Switch operator. Abhängig vom Rückgabewert des Ausdrucks (zwischen 0 und n-1) kopiert Switch den entsprechenden Eingabedatenstrom in den Ausgabedatenstrom.Depending on the return value of the expression (between 0 and n-1), Switch copies the appropriate input stream to the output stream. Eine Verwendungsmöglichkeit von Switch besteht in der Implementierung von Abfrageplänen, die schnelle Vorwärtscursor mit bestimmten Operatoren, z.B. dem TOP -Operator, enthalten.One use of Switch is to implement query plans involving fast forward cursors with certain operators such as the TOP operator. Switch ist sowohl ein logischer als auch ein physischer Operator.Switch is both a logical and physical operator.
Table Delete-Operator (Symbol)rTable delete operator icon Table DeleteTable Delete Mit dem physischen Operator Table Delete werden Zeilen aus der in der Argument -Spalte angegebenen Tabelle des Abfrageausführungsplans gelöscht.The Table Delete physical operator deletes rows from the table specified in the Argument column of the query execution plan.
Table Insert-Operator (Symbol)Table insert operator icon Table InsertTable Insert Durch den Operator Table Insert werden Eingabezeilen in die in der Argument -Spalte des Abfrageausführungsplans angegebene Tabelle eingefügt.The Table Insert operator inserts rows from its input into the table specified in the Argument column of the query execution plan. Die Argument -Spalte enthält auch ein SET:()-Prädikat, mit dem der Wert angegeben wird, auf den die einzelnen Spalten festgelegt sind.The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Wenn Table Insert keine untergeordneten Elemente für Eingabewerte enthält, wird die eingefügte Zeile aus dem Insert-Operator selbst übernommen.If Table Insert has no children for insert values, then the row inserted is taken from the Insert operator itself. Table Insert ist ein physischer Operator.Table Insert is a physical operator.
Table Merge-OperatorTable merge operator Table MergeTable Merge Der Table Merge -Operator wendet einen Mergedatenstrom auf einen Heap an.The Table Merge operator applies a merge data stream to a heap. Der Operator löscht oder aktualisiert Zeilen in der Tabelle, die in der Argument -Spalte des Operators angegeben ist, bzw. fügt Zeilen in diese ein.The operator deletes, updates, or inserts rows in the table specified in the Argument column of the operator. Der tatsächlich ausgeführte Vorgang ist vom Laufzeitwert der in der Argument -Spalte des Operators angegebenen ACTION -Spalte abhängig.The actual operation performed depends on the run-time value of the ACTION column specified in the Argument column of the operator. Table Merge ist ein physischer Operator.Table Merge is a physical operator.
Table Scan-Operator (Symbol)Table scan operator icon Table ScanTable Scan Mit dem Operator Table Scan werden alle Zeilen aus der in der Argument -Spalte angegebenen Tabelle des Abfrageausführungsplans abgerufen.The Table Scan operator retrieves all rows from the table specified in the Argument column of the query execution plan. Wenn ein WHERE:()-Prädikat in der Argument -Spalte angezeigt wird, werden nur die Zeilen zurückgegeben, die das Prädikat erfüllen.If a WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Table Scan ist ein logischer und physischer Operator.Table Scan is a logical and physical operator.
Table Spool-Operator (Symbol)Table spool operator icon Table SpoolTable Spool Der Table Spool -Operator scannt die Eingabe und platziert eine Kopie jeder Zeile in einer verborgenen Spooltabelle, die in der tempdb -Datenbank gespeichert und nur für die Dauer der Abfrage vorhanden ist.The Table Spool operator scans the input and places a copy of each row in a hidden spool table that is stored in the tempdb database and existing only for the lifetime of the query. Wenn der Operator zurückgesetzt wird (beispielsweise aufgrund eines Nested Loops -Operators), aber keine erneute Zuordnung erforderlich ist, werden die gespoolten Daten verwendet, anstatt die Eingabe erneut zu scannen.If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of rescanning the input. Table Spool ist ein physischer Operator.Table Spool is a physical operator.
Table Update-Operator (Symbol)Table update operator icon Table UpdateTable Update Mithilfe des physischen Table Update -Operators werden Eingabezeilen aktualisiert, die in der Argument -Spalte des Abfrageausführungsplans angegeben werden.The Table Update physical operator updates input rows in the table specified in the Argument column of the query execution plan. Das SET:()-Prädikat bestimmt den Wert jeder aktualisierten Spalte.The SET:() predicate determines the value of each updated column. Auf diese Werte kann in der SET-Klausel oder an anderer Stelle in diesem Operator sowie an anderer Stelle dieser Abfrage verwiesen werden.These values may be referenced in the SET clause or elsewhere within this operator as well as elsewhere within this query.
Tabellenwertfunktion-Operator (Symbol)Table-valued function operator icon Table-valued FunctionTable-valued Function Mit dem Operator Tabellenwertfunktion wird eine Tabellenwertfunktion ausgewertet ( Transact-SQLTransact-SQL oder CLR), und die Ergebniszeilen werden in der tempdb -Datenbank gespeichert.The Table-valued Function operator evaluates a table-valued function (either Transact-SQLTransact-SQL or CLR), and stores the resulting rows in the tempdb database. Wenn die übergeordneten Iteratoren die Zeilen anfordern, gibt die Tabellenwertfunktion die Zeilen aus tempdbzurück.When the parent iterators request the rows, Table-valued Function returns the rows from tempdb.

Abfragen mit Aufrufen von Tabellenwertfunktionen generieren Abfragepläne mit dem Tabellenwertfunktion -Iterator.Queries with calls to table-valued functions generate query plans with the Table-valued Function iterator. DieTabellenwertfunktion kann mit verschiedenen Parameterwerten analysiert werden:Table-valued Function can be evaluated with different parameter values:

-
DerTabellenwertfunktion-XML-Leser gibt einen XML-BLOB als Parameter ein und erstellt ein Rowset, das XML-Knoten in der XML-Dokumentreihenfolge darstellt.Table-valued Function XML Reader inputs an XML BLOB as a parameter and produces a rowset representing XML nodes in XML document order. Andere Eingabeparameter können die zurückgegebenen XML-Knoten auf eine Teilmenge von XML-Dokumenten einschränken.Other input parameters may restrict XML nodes returned to a subset of XML document.

-Tabellenwertfunktion-XML-Leser mit XPath-Filter ist ein spezieller Typ von Tabellenwertfunktion-XML-Leser , der die Ausgabe auf XML-Knoten einschränkt, die einen XPath-Ausdruck erfüllen.-Table Valued Function XML Reader with XPath filter is a special type of XML Reader Table-valued Function that restricts output to XML nodes satisfying an XPath expression.

DieTabellenwertfunktion ist sowohl ein logischer als auch ein physischer Operator.Table-valued Function is a logical and physical operator.
Top-Operator (Symbol)Top operator icon TopTop Der Top -Operator scannt die Eingabe und gibt nur die angegebene Anzahl bzw. den angegebenen Prozentsatz von Zeilen zurück, meist basierend auf einer Sortierreihenfolge.The Top operator scans the input, returning only the first specified number or percent of rows, possibly based on a sort order. Die Argument -Spalte kann eine Liste der Spalten enthalten, die auf Verbindungen überprüft werden.The Argument column can contain a list of the columns that are being checked for ties. In Updateplänen wird der Top -Operator verwendet, um die Einschränkung der Zeilenanzahl zu erzwingen.In update plans, the Top operator is used to enforce row count limits. Top ist sowohl ein logischer als auch physischer Operator.Top is a logical and physical operator.
InclusionThresholdSettingNone Top N SortTop N Sort Top N Sort ähnelt dem Sort -Iterator. Es werden allerdings nur die ersten N benötigt, und nicht das gesamte Resultset.Top N Sort is similar to the Sort iterator, except that only the first N rows are needed, and not the entire result set. Bei kleinen Werten für N versucht die SQL ServerSQL Server-Abfrageausführungs-Engine, den gesamten Sortiervorgang im Arbeitsspeicher auszuführen.For small values of N, the SQL ServerSQL Server query execution engine attempts to perform the entire sort operation in memory. Bei großen Werten für N greift die Abfrageausführungs-Engine auf die mehr generische Methode der Sortierung zurück, für die N kein Parameter ist.For large values of N, the query execution engine resorts to the more generic method of sorting to which N is not a parameter.
Erweiterter Operator (UDX – Symbol)Extended operator (UDX) icon UDXUDX Erweiterte Operatoren (UDX) implementieren einen von vielen XQuery- und XPath-Vorgängen in SQL ServerSQL Server.Extended Operators (UDX) implement one of many XQuery and XPath operations in SQL ServerSQL Server. Alle UDX-Operatoren sind sowohl logische als auch physische Operatoren.All UDX operators are both logical and physical operators.

Mit dem erweiterten Operator (UDX) FOR XML wird das relationale Rowset serialisiert, das in die XML-Darstellung einer einzelnen BLOB-Spalte in einer einzigen Ausgabezeile eingegeben wird.Extended operator (UDX) FOR XML is used to serialize the relational row set it inputs into XML representation in a single BLOB column in a single output row. Bei diesem XML-Aggregationsoperator wird die Reihenfolge berücksichtigt.It is an order sensitive XML aggregation operator.

Der erweiterte Operator (UDX) XML SERIALIZER ist ein XML-Aggregationsoperator, bei dem die Reihenfolge berücksichtigt wird.Extended operator (UDX) XML SERIALIZER is an order sensitive XML aggregation operator. Er gibt Zeilen ein, die XML-Knoten oder XQuery-Skalarwerte in der XML-Dokumentreihenfolge darstellen, und erstellt eine serialisierte XML-BLOB-Spalte in einer einzelnen XML-Spalte in einer einzigen Ausgabezeile.It inputs rows representing XML nodes or XQuery scalars in XML document order and produces a serialized XML BLOB in a single XML column in a single output row.

Der erweiterte Operator (UDX) XML FRAGMENT SERIALIZER ist eine Sonderform von XML SERIALIZER , womit Eingabezeilen verarbeitet werden, die XML-Fragmente darstellen, die in der XQuery-Erweiterung zum Ändern von Einfügungsdaten eingefügt werden.Extended operator (UDX) XML FRAGMENT SERIALIZER is a special type of XML SERIALIZER that is used for processing input rows representing XML fragments being inserted in XQuery insert data modification extension.

Der erweiterte Operator (UDX) XQUERY STRING wertet den XQuery-Zeichenfolgenwert von Eingabezeilen aus, die XML-Knoten darstellen.Extended operator (UDX) XQUERY STRING evaluates the XQuery string value of input rows representing XML nodes. Bei diesem Zeichenfolgen-Aggregationsoperator wird die Reihenfolge berücksichtigt.It is an order sensitive string aggregation operator. Er gibt eine Zeile mit Spalten zurück, die den XQuery-Skalarwert darstellt, der den Zeichenfolgenwert der Eingabe enthält.It outputs one row with columns representing the XQuery scalar that contains string value of the input.

Der erweiterte Operator (UDX) XQUERY LIST DECOMPOSER ist ein XQuery-Listendekompositionsoperator.Extended operator (UDX) XQUERY LIST DECOMPOSER is an XQuery list decomposition operator. Für jede Eingabezeile, die einen XML-Knoten darstellt, erstellt dieser Operator mindestens eine Zeile, die einen XQuery-Skalarwert mit einem Listenelementwert darstellt, falls die Eingabe vom XSD-Listentyp ist.For each input row representing an XML node it produces one or more rows each representing XQuery scalar containing a list element value if the input is of XSD list type.

Der erweiterte Operator (UDX) XQUERY DATA wertet die XQuery-Funktion fn:data() in Eingabezeilen aus, die XML-Knoten darstellen.Extended operator (UDX) XQUERY DATA evaluates the XQuery fn:data() function on input representing XML nodes. Bei diesem Zeichenfolgen-Aggregationsoperator wird die Reihenfolge berücksichtigt.It is an order sensitive string aggregation operator. Er gibt eine Zeile mit Spalten zurück, die den XQuery-Skalarwert darstellt, der das Ergebnis von fn:data() enthält.It outputs one row with columns representing XQuery scalar that contains the result of fn:data().

Der erweiterte Operator XQUERY CONTAINS wertet die XQuery-Funktion fn:contains() in Eingabezeilen aus, die XML-Knoten darstellen.Extended operator XQUERY CONTAINS evaluates the XQuery fn:contains() function on input representing XML nodes. Bei diesem Zeichenfolgen-Aggregationsoperator wird die Reihenfolge berücksichtigt.It is an order sensitive string aggregation operator. Er gibt eine Zeile mit Spalten zurück, die den XQuery-Skalarwert darstellt, der das Ergebnis von fn:contains() enthält.It outputs one row with columns representing XQuery scalar that contains the result of fn:contains().

Der erweiterte Operator UPDATE XML NODE aktualisiert XML-Knoten in der XQuery-Erweiterung zum Ändern von Ersetzungsdaten in der modify() -Methode vom XML-Typ.Extended operator UPDATE XML NODE updates XML node in the XQuery replace data modification extension in the modify() method on XML type.
InclusionThresholdSettingNone UnionUnion Der Union -Operator scannt mehrere Eingaben und gibt alle gescannten Zeilen aus, wobei Duplikate entfernt werden.The Union operator scans multiple inputs, outputting each row scanned and removing duplicates. Union ist ein logischer Operator.Union is a logical operator.
Update (Datenbank-Engine – Operatorsymbol)Update (Database Engine) operator icon UpdateUpdate Mithilfe des Update -Operators wird jede Zeile mit der entsprechenden Eingabe in das Objekt aktualisiert, das in der Argument -Spalte des Abfrageausführungsplans angegeben ist.The Update operator updates each row from its input in the object specified in the Argument column of the query execution plan. Update ist ein logischer Operator.Update is a logical operator. Der physische Operator ist Table Update, Index Updateoder Clustered Index Update.The physical operator is Table Update, Index Update, or Clustered Index Update.
While-Sprachelement (Symbol)While-Sprachelement (Symbol)While language element icon WhileWhile Der While -Operator implementiert die WHILE-Schleife von Transact-SQLTransact-SQL .The While operator implements the Transact-SQLTransact-SQL while loop. While ist ein Sprachelement.While is a language element
Table Spool-Operator (Symbol)Table spool operator icon Window SpoolWindow Spool Der Window Spool -Operator erweitert jede Zeile in den Satz von Zeilen, die das ihm zugeordnete Fenster darstellen.The Window Spool operator expands each row into the set of rows that represents the window associated with it. In einer Abfrage definiert die OVER-Klausel das Fenster innerhalb eines Abfrageresultsets, und eine Fensterfunktion berechnet dann einen Wert für jede Zeile im Fenster.In a query, the OVER clause defines the window within a query result set and a window function then computes a value for each row in the window. Window Spool ist sowohl ein logischer als auch physischer Operator.Window Spool is a logical and physical operator.