プラン表示の論理操作と物理操作のリファレンスShowplan Logical and Physical Operators Reference

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

操作は、 SQL ServerSQL Server でクエリやデータ操作言語 (DML) ステートメントを実行する方法を示します。Operators describe how SQL ServerSQL Server executes a query or a Data Manipulation Language (DML) statement. クエリ オプティマイザーでは、操作を使用して、クエリで指定された結果を作成するクエリ プラン、または DML ステートメントで指定された操作を実行するクエリ プランが構築されます。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. クエリ プランは、物理操作をツリー構成で表現したものです。The query plan is a tree consisting of physical operators. クエリ プランを表示するには、SET SHOWPLAN ステートメント、 [SQL Server Management Studio]SQL Server Management Studioのグラフィカル実行プラン オプション、または SQL Server Profiler Showplan イベント クラスを使用します。You can view the query plan by using the SET SHOWPLAN statements, the graphical execution plan options in [SQL Server Management Studio]SQL Server Management Studio, or the SQL Server Profiler Showplan event classes.

操作は、論理操作と物理操作に分類されます。Operators are classified as logical and physical operators.

論理演算子Logical Operators
論理操作は、ステートメントの処理に使用される関係代数操作を表します。Logical operators describe the relational algebraic operation used to process a statement. つまり、論理操作は、どのような操作を実行する必要があるかを、概念的に示します。In other words, logical operators describe conceptually what operation needs to be performed.

物理操作Physical Operators
物理操作では、論理操作によって示される操作が実装されます。Physical operators implement the operation described by logical operators. それぞれの物理操作は、操作を実行するオブジェクトまたはルーチンです。Each physical operator is an object or routine that performs an operation. たとえば、一部の物理操作は、テーブル、インデックス、またはビューから、列や行にアクセスします。For example, some physical operators access columns or rows from a table, index or view. 他の物理操作は、計算、集計、データ整合性チェック、結合などの他の操作を実行します。Other physical operators perform other operations such as calculations, aggregations, data integrity checks or joins. 物理操作には、それぞれ関連するコストがかかります。Physical operators have costs associated with them.

物理操作では、初期化、データの収集が行われた後に終了されます。The physical operators initialize, collect data, and close. 具体的には、物理操作は次の 3 つのメソッド呼び出しに応答できます。Specifically, the physical operator can answer the following three method calls:

  • Init():Init() メソッドは、物理操作自体を初期化し、必要なデータ構造を設定します。Init(): The Init() method causes a physical operator to initialize itself and set up any required data structures. 通常、物理操作が受け取る Init() 呼び出しは 1 つだけですが、多くの Init() 呼び出しを受け取る場合もあります。The physical operator may receive many Init() calls, though typically a physical operator receives only one.

  • GetNext():GetNext() メソッドにより、物理操作がデータの最初の行または後続の行を取得します。GetNext(): The GetNext() method causes a physical operator to get the first, or subsequent row of data. 物理操作が受け取る GetNext() 呼び出しは、多数の場合もゼロの場合もあります。The physical operator may receive zero or many GetNext() calls.

  • Close():Close() メソッドにより、物理操作はクリーンアップ操作を実行し、物理操作自体がシャットダウンされます。Close(): The Close() method causes a physical operator to perform some clean-up operations and shut itself down. 物理操作は、 Close() 呼び出しを 1 つだけ受け取ります。A physical operator only receives one Close() call.

GetNext() メソッドは、データ行を 1 行返します。このメソッドが呼び出された回数は、SET STATISTICS PROFILE ON または SET STATISTICS XML ON を使用して生成されるプラン表示出力で ActualRows として表示されます。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. これらの SET オプションの詳細については、「SET STATISTICS PROFILE (Transact-SQL)」および「SET STATISTICS XML (Transact-SQL)」を参照してください。For more information about these SET options, see SET STATISTICS PROFILE (Transact-SQL) and SET STATISTICS XML (Transact-SQL).

プラン表示出力に表示される ActualRebinds および ActualRewinds の数は、Init() メソッドが呼び出された回数を示します。The ActualRebinds and ActualRewinds counts that appear in Showplan output refer to the number of times that the Init() method is called. ループ結合内部での操作でなければ、 ActualRebinds は 1、 ActualRewinds は 0 になります。Unless an operator is on the inner side of a loop join, ActualRebinds equals one and ActualRewinds equals zero. ループ結合内部での操作の場合、再バインドと巻き戻しの合計数は、結合外部で処理された行数に等しくなる必要があります。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. 再バインドとは、結合の変更された相関パラメーターと、内側部分の相関パラメーターの 1 つ以上を再評価する必要があることを意味します。A rebind means that one or more of the correlated parameters of the join changed and the inner side must be reevaluated. 巻き戻しとは、変更された相関パラメーターを使用せず、前の内部の結果セットを再利用することを意味します。A rewind means that none of the correlated parameters changed and the prior inner result set may be reused.

ActualRebinds および ActualRewinds は、SET STATISTICS XML ON を使用して生成された XML プラン表示出力に存在します。ActualRebinds and ActualRewinds are present in XML Showplan output produced by using SET STATISTICS XML ON. これらは、 Nonclustered Index SpoolRemote QueryRow Count SpoolSortTable Spool、および Table-valued Function の各操作に対してのみ作成されます。They are only populated for the Nonclustered Index Spool, Remote Query, Row Count Spool, Sort, Table Spool, and Table-valued Function operators. また、ActualRebinds および ActualRewinds は、 Assert および Assert 操作と Filter 操作に対しても作成される場合があります。ActualRebinds and ActualRewinds may also be populated for the Assert and Filter operators when the StartupExpression attribute is set to TRUE.

ActualRebinds および ActualRewinds が XML プラン表示に存在する場合、これらの値が EstimateRebinds および EstimateRewindsに相当します。When ActualRebinds and ActualRewinds are present in an XML Showplan, they are comparable to EstimateRebinds and EstimateRewinds. 存在しない場合、予測行数 (EstimateRows) が実際の行数 (ActualRows) に相当します。When they are absent, the estimated number of rows (EstimateRows) is comparable to the actual number of rows (ActualRows). この場合、実際のグラフィカルなプラン表示出力では、実際の再バインド数と実際の巻き戻し数としてゼロが表示されることに注意してください。Note that actual graphical Showplan output displays zeros for the actual rebinds and actual rewinds when they are absent.

関連するカウンター ActualEndOfScansは、プラン表示出力が SET STATISTICS XML ON を使用して生成されている場合のみ使用できます。A related counter, ActualEndOfScans, is available only when Showplan output is produced by using SET STATISTICS XML ON. 物理操作がデータ ストリームの最後に達するたびに、このカウンターの値は 1 ずつ増加します。Whenever a physical operator reaches the end of its data stream, this counter is incremented by one. 物理操作がデータ ストリームの最後に達することのできる回数は、0 回、1 回、あるいは複数回です。A physical operator can reach the end of its data stream zero, one, or multiple times. 再バインドおよび巻き戻しと同様に、スキャンの終了回数は、ループ結合内部での操作の場合のみ 2 回以上になります。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. スキャンの終了回数は、再バインドおよび巻き戻しの合計数以下になる必要があります。The number of end of scans should be less than or equal to the sum of the number of rebinds and rewinds.

物理操作と論理操作の対応関係Mapping Physical and Logical Operators

クエリ オプティマイザーでは、ツリー構成の論理操作としてクエリ プランが作成されます。The query optimizer creates a query plan as a tree consisting of logical operators. クエリ オプティマイザーでは、プランが作成されると、各論理操作にとって最も効率的な物理操作が選択されます。After the query optimizer creates the plan, the query optimizer chooses the most efficient physical operator for each logical operator. クエリ オプティマイザーでは、論理操作をどの物理操作から実装するかを判断するために、コストベースの手法が使用されます。The query optimizer uses a cost-based approach to determine which physical operator will implement a logical operator.

通常、複数の物理操作で 1 つの論理操作を実装できます。Usually, a logical operation can be implemented by multiple physical operators. ただし、めったにないケースですが、1 つの物理操作で複数の論理操作を実装することもできます。However, in rare cases, a physical operator can implement multiple logical operations as well.

操作の説明Operator Descriptions

このセクションには、論理演算子と物理演算子の説明が含まれています。This section contains descriptions of the logical and physical operators.

グラフィカルな実行プランのアイコンGraphical Execution Plan Icon プラン表示操作Showplan Operator [説明]Description
適応型結合操作アイコンAdaptive Join operator icon 適応型結合Adaptive Join 適応型結合演算子を使うと、最初の入力のスキャンが終わるまで、ハッシュ結合方法または入れ子になったループ結合方法のどちらを選ぶかを、遅延することができます。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.
なしNone AggregateAggregate Aggregate 操作は、MIN、MAX、SUM、COUNT、AVG のいずれかが含まれた式を計算します。The Aggregate operator calculates an expression containing MIN, MAX, SUM, COUNT or AVG. Aggregate は、論理操作または物理操作です。The Aggregate operator can be a logical operator or a physical operator.
Arithmetic Expression 操作アイコンArithmetic expression operator icon Arithmetic ExpressionArithmetic Expression Arithmetic Expression 操作は、行の既存の値から新しい値を計算します。The Arithmetic Expression operator computes a new value from existing values in a row. Arithmetic Expression は、 SQL Server 2017SQL Server 2017では使用されません。Arithmetic Expression is not used in SQL Server 2017SQL Server 2017.
なしNone Async ConcatAsync Concat Async Concat 操作は、リモート クエリ (分散クエリ) でのみ使用されます。The Async Concat operator is used only in remote queries (distributed queries). Async Concat には n 個の子ノードと 1 個の親ノードが含まれます。It has n children and one parent node. 通常、子ノードのいくつかはリモート コンピューターで、分散クエリに参加しています。Usually, some of the children are remote computers that participate in a distributed query. Async Concat は、すべての子ノードに同時に open() 呼び出しを行い、各子ノードにビットマップを適用します。Async Concat issues open() calls to all of the children simultaneously and then applies a bitmap to each child. Async Concat では、1 に設定されているビットごとに、要求時に出力行が親ノードに送信されます。For each bit that is a 1, Async Concat sends the output rows to the parent node on demand.
Assert 操作アイコンAssert operator icon FilterAssert Assert 操作は、状態の検証を行います。The Assert operator verifies a condition. たとえば、参照整合性の検証や、スカラー サブクエリによって 1 行返されることの確認を行います。For example, it validates referential integrity or ensures that a scalar subquery returns one row. 入力行ごとに、 Assert 操作によって実行プランの Argument 列の式が評価されます。For each input row, the Assert operator evaluates the expression in the Argument column of the execution plan. この式が NULL であると評価されると、行は Assert 操作を通過して、クエリの実行が継続されます。If this expression evaluates to NULL, the row is passed through the Assert operator and the query execution continues. 式が NULL 以外の値に評価されると、相応のエラーが発生します。If this expression evaluates to a nonnull value, the appropriate error will be raised. Assert 操作は物理操作です。The Assert operator is a physical operator.
Assign 言語要素アイコンAssign language element icon AssignAssign Assign 操作は、変数に式の値または定数値を代入します。The Assign operator assigns the value of an expression or a constant to a variable. Assign は言語要素です。Assign is a language element.
Bitmap 操作アイコンBitmap operator icon Bitmap CreateBitmap Create Bitmap Create 操作は、ビットマップが作成されるプラン表示の出力に使用されます。The Bitmap Create operator appears in the Showplan output where bitmaps are built. Bitmap Create は論理操作です。Bitmap Create is a logical operator.
Bitmap 操作アイコンBitmap operator icon BitmapBitmap SQL ServerSQL ServerBitmap 操作を使用することによって、並列クエリ プランにビットマップ フィルターを実装しています。uses the Bitmap operator to implement bitmap filtering in parallel query plans. ビットマップ フィルターの利点は、クエリの実行速度が向上することです。行が他の操作 ( Parallelism 操作など) に渡される前に、結合レコードの生成に関係しないキー値を持った行が排除されます。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. ビットマップ フィルターは、操作ツリーの特定の部分にあるテーブルから得られた一連の値の圧縮表現を使用して、同じツリーの別の部分にある 2 つ目のテーブルから行を抽出します。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. 不要な行をクエリの初期段階で排除することにより、それ以降の操作に渡される行数が減り、その結果、クエリの全体的なパフォーマンスが向上します。By removing unnecessary rows early in the query, subsequent operators have fewer rows to work with, and the overall performance of the query improves. オプティマイザーは、どのような場合にビットマップの選択度が効果を期待できる程度に高くなるか、また、どのような操作にフィルターを適用すべきかを判断します。The optimizer determines when a bitmap is selective enough to be useful and in which operators to apply the filter. Bitmap は物理操作です。Bitmap is a physical operator.
Bookmark Lookup 操作アイコンBookmark lookup operator icon Bookmark LookupBookmark Lookup Bookmark Lookup 操作は、ブックマーク (行 ID またはクラスター化キー) を使用してテーブルまたはクラスター化インデックスの対応行を参照します。The Bookmark Lookup operator uses a bookmark (row ID or clustering key) to look up the corresponding row in the table or clustered index. Argument 列 (引数) には、テーブルまたはクラスター化インデックスの行の参照に使用されるブックマーク ラベルが入ります。The Argument column contains the bookmark label used to look up the row in the table or clustered index. また、 Argument 列 (引数) には、参照先の行があるテーブル名またはクラスター化インデックス名も入ります。The Argument column also contains the name of the table or clustered index in which the row is looked up. Argument 列に WITH PREFETCH 句がある場合、クエリ プロセッサでは、テーブルまたはクラスター化インデックスのブックマークを参照する最適な方法として、非同期プリフェッチ (先読み) が使用されます。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.

SQL Server 2005SQL Server 2005 以降、Bookmark Lookup は使用されません。Starting with SQL Server 2005SQL Server 2005, Bookmark Lookup is not used. 代わりに、Key Lookup および RID Lookup によってブックマーク参照機能が提供されます。Instead, Key Lookup and RID Lookup provide bookmark lookup functionality.
なしNone Branch RepartitionBranch Repartition 並列クエリ プランでは、反復子に概念上の領域が存在する場合があります。In a parallel query plan, sometimes there are conceptual regions of iterators. このような領域内にある反復子はすべて、並列スレッドにより実行できます。All of the iterators within such a region can be executed by parallel threads. 領域自体は、順次実行される必要があります。The regions themselves must be executed serially. 個別の領域内の Parallelism 反復子のいくつかは、 Branch Repartitionと呼ばれます。Some of the Parallelism iterators within an individual region are called Branch Repartition. このような 2 つの領域間の境界にある Parallelism 反復子は、 Segment Repartitionと呼ばれます。The Parallelism iterator at the boundary of two such regions is called Segment Repartition. Branch RepartitionSegment Repartition は論理操作です。Branch Repartition and Segment Repartition are logical operators.
なしNone BroadcastBroadcast Broadcast には、1 つの子ノードと n 個の親ノードがあります。Broadcast has one child node and n parent nodes. Broadcast では、要求時に複数のコンシューマーに入力行が送信されます。Broadcast sends its input rows to multiple consumers on demand. 各コンシューマーがすべての行を取得します。Each consumer gets all of the rows. たとえば、すべてのコンシューマーがハッシュ結合のビルド側の場合、ハッシュ テーブルの n 個のコピーがビルドされます。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 操作アイコンBuild hash operator icon Build HashBuild Hash xVelocity メモリ最適化列ストア インデックスのバッチ ハッシュ テーブルの作成を示します。Indicates the build of a batch hash table for an xVelocity memory optimized columnstore index.
なしNone CacheCache Cache は、特殊な Spool 操作です。Cache is a specialized version of the Spool operator. データは 1 行分しか格納されません。It stores only one row of data. Cache は論理操作です。Cache is a logical operator. CacheSQL Server 2017SQL Server 2017では使用されません。Cache is not used in SQL Server 2017SQL Server 2017.
Clustered Index Delete 操作アイコンClustered index delete operator icon Clustered Index DeleteClustered Index Delete Clustered Index Delete 操作は、クエリ実行プランの Argument 列で指定されているクラスター化インデックスから行を削除します。The Clustered Index Delete operator deletes rows from the clustered index specified in the Argument column of the query execution plan. Argument 列に WHERE:() 述語がある場合、その述語に適合する行だけが削除されます。Clustered Index Delete は物理操作です。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 操作アイコンClustered index insert operator icon Clustered Index InsertClustered Index Insert Clustered Index Insert プラン表示操作では、Argument 列で指定されているクラスター化インデックスに、入力からの行が挿入されます。The Clustered Index Insert Showplan operator inserts rows from its input into the clustered index specified in the Argument column. また、Argument 列には、各列に設定する値を示す SET:() 述語も含まれます。The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Clustered Index Insert が挿入値として使用する子を持っていない場合、挿入される行は、 Insert 操作自体から取得されます。Clustered Index Insert は物理操作です。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 操作アイコンClustered index merge operator Clustered Index MergeClustered Index Merge Clustered Index Merge 操作は、マージ データ ストリームをクラスター化インデックスに適用します。The Clustered Index Merge operator applies a merge data stream to a clustered index. この操作は、操作の Argument 列で指定されているクラスター化インデックスに対して行を削除、更新または挿入します。The operator deletes, updates, or inserts rows from the clustered index specified in the Argument column of the operator. 実際の操作は、操作の Argument 列に指定された ACTION 列のランタイム値によって異なります。The actual operation performed depends on the runtime value of the ACTION column specified in the Argument column of the operator. Clustered Index Merge は物理操作です。Clustered Index Merge is a physical operator.
Clustered Index Scan 操作アイコンClustered index scan operator icon Clustered Index ScanClustered Index Scan Clustered Index Scan 操作は、クエリ実行プランの Argument 列に指定されたクラスター化インデックスをスキャンします。The Clustered Index Scan operator scans the clustered index specified in the Argument column of the query execution plan. オプションの WHERE:() 述語がある場合、この述語に適合する行だけが返されます。When an optional WHERE:() predicate is present, only those rows that satisfy the predicate are returned. Argument 列 (引数) に ORDERED 句が含まれている場合は、クラスター化インデックスの並べ替え順での行出力が要求されています。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. ORDERED 句がない場合は、ストレージ エンジンが最適な方法でインデックスをスキャンします。出力の並べ替えは必ずしも行われません。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 は論理操作でもあり、物理操作でもあります。Clustered Index Scan is a logical and physical operator.
Clustered Index Seek 操作アイコンClustered index seek operator icon Clustered Index SeekClustered Index Seek Clustered Index Seek 操作は、インデックスのシーク機能を使用してクラスター化インデックスから行を取得します。The Clustered Index Seek operator uses the seeking ability of indexes to retrieve rows from a clustered index. Argument 列には、使用されているクラスター化インデックスの名前と SEEK:() 述語が含まれます。The Argument column contains the name of the clustered index being used and the SEEK:() predicate. ストレージ エンジンはインデックスを使用して、この SEEK:() 述語に適合する行だけを処理します。The storage engine uses the index to process only those rows that satisfy this SEEK:() predicate. また、WHERE:() 述語を含めることもできます。この場合、ストレージ エンジンは、SEEK:() 述語に適合するすべての行が WHERE:() 述語に適合するかどうかを評価します。ただし、WHERE:() 述語は省略可能であり、処理を行うときにインデックスを使用しません。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.

Argument 列に ORDERED 句が含まれている場合、行をクラスター化インデックスの並べ替え順で返す必要があることが、クエリ プロセッサによって判断されます。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. ORDERED 句がない場合、ストレージ エンジンが最適な方法でインデックスを検索します。ただし、出力が並べ替えられるとは限りません。If the ORDERED clause is not present, the storage engine searches the index in the optimal way, without necessarily sorting the output. 出力で行の順序を保持する場合、並べ替えられていない出力に比べて効率が低下することがあります。Allowing the output to retain its ordering can be less efficient than producing nonsorted output. LOOKUP キーワードを指定すると、ブックマーク参照が行われます。When the keyword LOOKUP appears, then a bookmark lookup is being performed. SQL Server 2008:SQL Server 2008 以降のバージョンでは、 Key Lookup 操作によってブックマーク参照機能が提供されます。In SQL Server 2008:SQL Server 2008 and later versions, the Key Lookup operator provides bookmark lookup functionality. Clustered Index Seek は論理操作でもあり、物理操作でもあります。Clustered Index Seek is a logical and physical operator.
Clustered Index Update 操作アイコンClustered index update operator icon Clustered Index UpdateClustered Index Update Clustered Index Update 操作は、 Argument 列に指定されたクラスター化インデックスの入力行を更新します。WHERE:() 述語がある場合、この述語に適合する行だけが更新されます。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. SET:() 述語がある場合、更新される各列がこの値に設定されます。If a SET:() predicate is present, each updated column is set to this value. DEFINE:() 述語がある場合、この操作によって定義される値が一覧表示されます。If a DEFINE:() predicate is present, the values that this operator defines are listed. これらの値は、SET 句、またはこの操作内かこのクエリ内で参照されることがあります。These values may be referenced in the SET clause or elsewhere within this operator and elsewhere within this query. Clustered Index Update は論理操作でもあり、物理操作でもあります。Clustered Index Update is a logical and physical operator.
Collapse 操作アイコンCollapse operator icon [折りたたみ]Collapse Collapse 操作により、更新処理が最適化されます。The Collapse operator optimizes update processing. 更新が実行されると、( Split 操作を使用して) 削除と挿入に分割されます。When an update is performed, it can be split (using the Split operator) into a delete and an insert. Argument 列には、キー列のリストを指定する GROUP BY:() 句が格納されます。The Argument column contains a GROUP BY:() clause that specifies a list of key columns. クエリ プロセッサでは、同じキー値を削除して挿入する操作が隣接する行で検出されると、これらの個別の操作を 1 つのより効率的な更新操作に置き換えます。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 は論理操作でもあり、物理操作でもあります。Collapse is a logical and physical operator.
Columnstore インデックス スキャンColumnstore Index Scan Columnstore インデックス スキャンColumnstore Index Scan Columnstore Index Scan 操作は、クエリ実行プランの Argument 列 (引数) に指定された列ストア インデックスをスキャンします。The Columnstore Index Scan operator scans the columnstore index specified in the Argument column of the query execution plan.
Compute Scalar 操作アイコンCompute scalar operator icon Compute ScalarCompute Scalar Compute Scalar 操作は、計算されたスカラー値を作成する式を評価します。The Compute Scalar operator evaluates an expression to produce a computed scalar value. この値は、ユーザー、クエリの参照先、またはその両方に返されることがあります。This may then be returned to the user, referenced elsewhere in the query, or both. 両方に返される例としては、フィルター述語や結合述語があります。An example of both is in a filter predicate or join predicate. Compute Scalar は論理操作および物理操作です。Compute Scalar is a logical and physical operator.

SET STATISTICS XML により生成されたプラン表示に表示されるCompute Scalar 操作に、 RunTimeInformation 要素が含まれない場合がありますCompute Scalar operators that appear in Showplans generated by SET STATISTICS XML might not contain the RunTimeInformation element. [実際の実行プランを含める] オプションが選択されているときは、グラフィカルなプラン表示の[プロパティ] ウィンドウに [実際の行数] [実際の再バインド数] 、および [実際の巻き戻し数] [SQL Server Management Studio]SQL Server Management Studioが表示されないことがあります。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 Studio]SQL Server Management Studio. その場合、コンパイルされたクエリ プランでは Compute Scalar 操作が使用されていたのに、実行時のクエリ プランではこの操作の作業が別の操作によって行われたことを意味します。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. また、SET STATISTICS PROFILE によって生成されるプラン表示出力の実行の数は、SET STATISTICS XML によって生成されるプラン表示の再バインドと巻き戻しの合計と同じになります。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 操作アイコンConcatenation operator icon ConcatenationConcatenation Concatenation 操作は複数の入力をスキャンし、スキャンした各行を返します。The Concatenation operator scans multiple inputs, returning each row scanned. Concatenation は、主に Transact-SQLTransact-SQL UNION ALL コンストラクトの実装に使用します。Concatenation is typically used to implement the Transact-SQLTransact-SQL UNION ALL construct. Concatenation 物理操作は入力が複数で出力が 1 つです。The Concatenation physical operator has two or more inputs and one output. この操作では、最初の入力ストリームの行が出力ストリームにコピーされ、同じ動作が以降の各入力ストリームに対して行われます。Concatenation copies rows from the first input stream to the output stream, then repeats this operation for each additional input stream. Concatenation は論理操作でもあり、物理操作でもあります。Concatenation is a logical and physical operator.
Constant Scan 操作アイコンConstant scan operator icon Constant ScanConstant Scan Constant Scan 操作は、1 つ以上の定数行をクエリに導入します。The Constant Scan operator introduces one or more constant rows into a query. 多くの場合、 Compute Scalar 操作は、 Constant Scan 操作によって生成された行に列を追加するために、 Constant Scan の後で使用されます。A Compute Scalar operator is often used after a Constant Scan to add columns to a row produced by the Constant Scan operator.
Convert (データベース エンジン) 言語要素アイコンConvert (Database Engine) language element icon [変換]Convert Convert 操作は、スカラー データ型間の変換を行います。The Convert operator converts one scalar data type to another. Convert は言語要素です。Convert is a language element.
なしNone Cross JoinCross Join Cross Join 操作は、最初 (上部) の入力の各行と 2 番目 (下部) の入力の各行を結合します。The Cross Join operator joins each row from the first (top) input with each row from the second (bottom) input. Cross Join は論理操作です。Cross Join is a logical operator.
なしNone カーソルCursor カーソル 論理操作および物理操作は、カーソル操作に関するクエリまたは更新処理がどのように実行されたかを示すために使用されます。The Cursor logical and physical operators are used to describe how a query or update involving cursor operations is executed. カーソル物理操作は、キーセット ドリブン カーソルの使用など、カーソルの処理に使用される物理的な実装アルゴリズムを示します。The physical operators describe the physical implementation algorithm used to process the cursor; for example, using a keyset-driven cursor. カーソル実行の各ステップは、物理操作に関係します。Each step in the execution of a cursor involves a physical operator. カーソル論理操作は、カーソルが読み取り専用であるなどの、カーソルのプロパティを示します。The logical operators describe a property of the cursor, such as the cursor is read only.

論理操作には、Asynchronous、Optimistic、Primary、Read Only、Scroll Locks、Secondary、および Synchronous があります。Logical operators include Asynchronous, Optimistic, Primary, Read Only, Scroll Locks, and Secondary and Synchronous.

物理操作には、Dynamic、Fetch Query、Keyset、Population Query、Refresh Query、および Snapshot があります。Physical operators include Dynamic, Fetch Query, Keyset, Population Query, Refresh Query and Snapshot.
カーソル汎用カーソル操作アイコンCursor catchall cursor operator icon 汎用catchall 汎用アイコンは、グラフィカルなプラン表示を生成するロジックで、反復子に適したアイコンが見つからない場合に表示されます。The catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical showplans. 汎用アイコンは、必ずしもエラー状態を示しているわけではありません。The catchall icon does not necessarily indicate an error condition. 汎用アイコンには、青 (反復子)、オレンジ (カーソル)、緑 ( Transact-SQLTransact-SQL 言語要素) の 3 種類があります。There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language elements).
Declare 言語要素アイコンDeclare language element icon DeclareDeclare Declare 操作はクエリ プランにローカル変数を割り当てます。The Declare operator allocates a local variable in the query plan. Declare は言語要素です。Declare is a language element.
Delete (データベース エンジン) 操作アイコンDelete (Database Engine) operator icon 削除Delete Delete 操作は、 Argument 列 (引数) のオプション述語に適合するオブジェクトから行を削除します。The Delete operator deletes from an object rows that satisfy the optional predicate in the Argument column.
Delete Scan 操作アイコンDelete scan operator icon Deleted ScanDeleted Scan Deleted Scan 操作は、削除されたテーブルをトリガー内でスキャンします。The Deleted Scan operator scans the deleted table within a trigger.
なしNone Distinct SortDistinct Sort Distinct Sort 論理操作は入力をスキャンし、重複部分を削除し、 Argument 列の DISTINCT ORDER BY:() 述語に指定された列を基準に並べ替えます。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 は論理操作です。Distinct Sort is a logical operator.
なしNone DistinctDistinct Distinct 操作は、行セットや値のコレクションから重複部分を削除します。The Distinct operator removes duplicates from a rowset or from a collection of values. Distinct は論理操作です。Distinct is a logical operator.
Distribute Streams 並列操作アイコンDistribute streams parallelism operator icon Distribute StreamsDistribute Streams Distribute Streams 操作は、並列クエリ プランのみで使用されます。The Distribute Streams operator is used only in parallel query plans. Distribute Streams 操作は、レコードの 1 つの入力ストリームを使用して複数の出力ストリームを生成します。The Distribute Streams operator takes a single input stream of records and produces multiple output streams. レコードの内容と形式は変更されません。The record contents and format are not changed. 入力ストリームの各レコードは、出力ストリームのいずれかに含まれます。Each record from the input stream appears in one of the output streams. この操作では、出力ストリーム内で入力レコードの相対順序が自動的に保持されます。This operator automatically preserves the relative order of the input records in the output streams. 通常、特定の入力レコードが属する出力ストリームを判断するにはハッシュ操作が使用されます。Usually, hashing is used to decide to which output stream a particular input record belongs.

出力をパーティション分割する場合、 Argument 列に PARTITION COLUMNS:() 述語とパーティション列が設定されます。If the output is partitioned, then the Argument column contains a PARTITION COLUMNS:() predicate and the partitioning columns. Distribute Streams は論理操作です。Distribute Streams is a logical operator
Dynamic カーソル操作アイコンDynamic cursor operator icon 動的Dynamic Dynamic 操作は、他のユーザーによる変更をすべて表示できるカーソルを使用します。The Dynamic operator uses a cursor that can see all changes made by others.
Fetch Query カーソル操作アイコンFetch query cursor operator icon Fetch QueryFetch Query Fetch Query 操作は、カーソルに対してフェッチが実行されたときに行を取得します。The Fetch Query operator retrieves rows when a fetch is issued against a cursor.
Filter (データベース エンジン) 操作アイコンFilter (Database Engine) operator icon AssertFilter Filter 操作は、入力をスキャンし、 Argument 列にあるフィルター式 (述語) に適合する行だけを返します。The Filter operator scans the input, returning only those rows that satisfy the filter expression (predicate) that appears in the Argument column.
なしNone Flow DistinctFlow Distinct Flow Distinct 論理操作は入力をスキャンし、重複部分を削除します。The Flow Distinct logical operator scans the input, removing duplicates. Distinct 操作はすべての入力を取得してから出力を行いますが、 FlowDistinct 操作は入力から各行を取得するたびに行を返します。ただし、行が重複する場合は破棄されます。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).
Foreign Key References Check 操作アイコンForeign key references check operator icon Foreign Key References CheckForeign Key References Check Foreign Key References Check 操作は、変更された行を参照テーブルの行と比較して、変更によって参照整合性が損なわれないことを確認することで、参照整合性チェックを適切に実行します。The Foreign Key References Check operator performs referential integrity checks in place, by comparing the modified row to the rows in the referencing tables to verify that the modification will not break the referential integrity. Foreign Key References Check 操作は、同じプライマリ キーまたは一意のキーに 253 を超える外部キー参照が存在する場合に使用されます。The Foreign Key References Check operator is used when more than 253 foreign key references exist on the same primary or unique key. Foreign Key References Check は論理操作でもあり、物理操作でもあります。Foreign Key References Check is a logical and physical operator.
なしNone Full Outer JoinFull Outer Join Full Outer Join 論理操作は、最初 (上部) の入力で結合述語に適合し、2 番目 (下部) の入力の各行と結合された各行を返します。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. また、以下の行も返します。It also returns rows from:

- 2 番目の入力に一致する行がない最初の入力の行。-The first input that had no matches in the second input.

- 最初の入力に一致する行がない 2 番目の入力の行。-The second input that had no matches in the first input.

一致する値がない入力は NULL 値として返されます。The input that does not contain the matching values is returned as a null value. Full Outer Join は論理操作です。Full Outer Join is a logical operator.
Gather Streams 並列操作アイコンGather streams parallelism operator icon Gather StreamsGather Streams Gather Streams 操作は、並列クエリ プランでのみ使用されます。The Gather Streams operator is only used in parallel query plans. Gather Streams 操作は複数の入力ストリームを使用し、入力ストリームを組み合わせてレコードの単一出力ストリームを作成します。The Gather Streams operator consumes several input streams and produces a single output stream of records by combining the input streams. レコードの内容と形式は変更されません。The record contents and format are not changed. この操作で順序を保持する場合は、すべての入力ストリームが並べ替えられている必要があります。If this operator is order preserving, all input streams must be ordered. 出力を並べ替える場合、 Argument 列には ORDER BY:() 述語および並べ替える列の名前が表示されます。If the output is ordered, the Argument column contains an ORDER BY:() predicate and the names of columns being ordered. Gather Streams は論理操作です。Gather Streams is a logical operator.
Hash Match 操作アイコンHash match operator icon Hash MatchHash Match Hash Match 操作は、ビルド入力の行ごとにハッシュ値を計算してハッシュ テーブルを作成します。The Hash Match operator builds a hash table by computing a hash value for each row from its build input. Argument 列に、ハッシュ値の作成に使用される列リストが指定された HASH:() 述語が入ります。A HASH:() predicate with a list of columns used to create a hash value appears in the Argument column. 次に、該当するプローブ行ごとに同じハッシュ関数を使用してハッシュ値が計算され、ハッシュ テーブル内で一致検索が行われます。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. 残余述語がある場合 ( Argument 列内の RESIDUAL:() で特定できます)、行が一致すると見なすには、その残余述語の条件も満たす必要があります。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. 動作は、次に示すように、実行している論理操作によって異なります。Behavior depends on the logical operation being performed:

- すべての結合では、最初 (上部) の入力を使用してハッシュ テーブルを作成し、2 番目 (下部) の入力を使用してハッシュ テーブルを探索します。-For any joins, use the first (top) input to build the hash table and the second (bottom) input to probe the hash table. 出力は、結合の種類で指定されているとおりに一致します (または一致しません)。Output matches (or nonmatches) as dictated by the join type. 複数の結合が同じ結合列を使用する場合、これらの操作はハッシュ チームにグループ化されます。If multiple joins use the same join column, these operations are grouped into a hash team.

- Distinct 操作または Aggregate 操作の場合、入力を使用してハッシュ テーブルを作成します (重複部分を削除し、集計式を計算します)。-For the distinct or aggregate operators, use the input to build the hash table (removing duplicates and computing any aggregate expressions). ハッシュ テーブルを作成したら、テーブルをスキャンしすべてのエントリを出力します。When the hash table is built, scan the table and output all entries.

- Union 操作の場合、最初の入力を使用してハッシュ テーブルを作成します (重複部分は削除します)。-For the union operator, use the first input to build the hash table (removing duplicates). 2 番目の入力 (重複部分はありません) を使用して、ハッシュ テーブルを探索して一致しないすべての行を返します。次に、ハッシュ テーブルをスキャンし、すべてのエントリを返します。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.

Hash Match は物理操作です。Hash Match is a physical operator.
If 言語要素アイコンIf language element icon 状況If If 操作では、式に基づく条件処理を実行します。The If operator carries out conditional processing based on an expression. If は言語要素です。If is a language element.
なしNone Inner JoinInner Join Inner Join 論理操作は、最初 (上部) の入力と 2 番目 (下部) の入力の結合に適合する各行を返します。The Inner Join logical operator returns each row that satisfies the join of the first (top) input with the second (bottom) input.
Insert (データベース エンジン) 操作アイコンInsert (Database Engine) operator icon InsertInsert Insert 論理操作は、 Argument 列に指定されたオブジェクトに入力から各行を挿入します。The Insert logical operator inserts each row from its input into the object specified in the Argument column. 物理操作は、 Table Insert操作、 Index Insert操作、または Clustered Index Insert 操作のいずれかです。The physical operator is either the Table Insert, Index Insert, or Clustered Index Insert operator.
Inserted Scan 操作アイコンInserted scan operator icon Inserted ScanInserted Scan Inserted Scan 操作は、 inserted テーブルをスキャンします。The Inserted Scan operator scans the inserted table. Inserted Scan 操作は論理操作でもあり、物理操作でもあります。Inserted Scan is a logical and physical operator.
Intrinsic 言語要素アイコンIntrinsic language element icon IntrinsicIntrinsic Intrinsic 操作では、内部 Transact-SQLTransact-SQL 関数が呼び出されます。The Intrinsic operator invokes an internal Transact-SQLTransact-SQL function. Intrinsic は言語要素です。Intrinsic is a language element.
Iterator 汎用操作アイコンIterator catchall operator icon IteratorIterator Iterator 汎用アイコンは、グラフィカルなプラン表示を生成するロジックで、反復子に適したアイコンが見つからない場合に表示されます。The Iterator catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. 汎用アイコンは、必ずしもエラー状態を示しているわけではありません。The catchall icon does not necessarily indicate an error condition. 汎用アイコンには、青 (反復子)、オレンジ (カーソル)、緑 ( Transact-SQLTransact-SQL 言語コンストラクト) の 3 種類があります。There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language constructs).
Bookmark Lookup 操作アイコンBookmark lookup operator icon Key LookupKey Lookup Key Lookup 操作は、クラスター化インデックス付きテーブルでのブックマーク参照です。The Key Lookup operator is a bookmark lookup on a table with a clustered index. Argument 列には、クラスター化インデックスの名前、およびクラスター化インデックスで行の参照に使用されるクラスター化キーが格納されます。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 は、常に Nested Loops 操作を伴います。Key Lookup is always accompanied by a Nested Loops operator. Argument 列に WITH PREFETCH 句がある場合、クエリ プロセッサでは、クラスター化インデックスのブックマークを参照する最適な方法として、非同期プリフェッチ (先読みり) が使用されます。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.

クエリ プランで Key Lookup 操作を使用することは、パフォーマンスのチューニングによってクエリ パフォーマンスが向上する可能性があることを示します。The use of a Key Lookup operator in a query plan indicates that the query might benefit from performance tuning. たとえば、カバリング インデックスを追加することにより、クエリ パフォーマンスが向上する場合があります。For example, query performance might be improved by adding a covering index.
Keyset カーソル操作アイコンKeyset cursor operator icon KeysetKeyset Keyset 操作では、カーソルを使用して更新内容を参照できます。ただし、他のユーザーが挿入した内容は参照できません。The Keyset operator uses a cursor that can see updates, but not inserts made by others.
Language Element 汎用アイコンLanguage element catchall icon Language 要素Language Element Language Element 汎用アイコンは、グラフィカルなプラン表示を生成するロジックで、反復子に適したアイコンが見つからない場合に表示されます。The Language Element catchall icon is displayed when a suitable icon for the iterator cannot be found by the logic that produces graphical Showplans. 汎用アイコンは、必ずしもエラー状態を示しているわけではありません。The catchall icon does not necessarily indicate an error condition. 汎用アイコンには、青 (反復子)、オレンジ (カーソル)、緑 ( Transact-SQLTransact-SQL 言語コンストラクト) の 3 種類があります。There are three catchall icons: blue (for iterators), orange (for cursors), and green (for Transact-SQLTransact-SQL language constructs).
なしNone Left Anti Semi JoinLeft Anti Semi Join Left Anti Semi Join 操作は、最初 (上部) の入力の中に 2 番目 (下部) の入力に一致する行がない場合に該当する行を返します。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. Argument 列 (引数) に結合述語がない場合は、各行が一致する行になります。If no join predicate exists in the Argument column, each row is a matching row. Left Anti Semi Join は論理操作です。Left Anti Semi Join is a logical operator.
なしNone Left Outer JoinLeft Outer Join Left Outer Join 操作は、最初 (上部) の入力と 2 番目 (下部) の入力の結合に適合する各行を返します。The Left Outer Join operator returns each row that satisfies the join of the first (top) input with the second (bottom) input. また、最初 (上部) の入力の中で 2 番目 (下部) の入力に一致する行がない行も返します。It also returns any rows from the first input that had no matching rows in the second input. 2 番目の入力の一致しない行は NULL 値として返されます。The nonmatching rows in the second input are returned as null values. Argument 列 (引数) に結合述語がない場合は、各行が一致する行になります。If no join predicate exists in the Argument column, each row is a matching row. Left Outer Join は論理操作です。Left Outer Join is a logical operator.
なしNone Left Semi JoinLeft Semi Join Left Semi Join 操作は、最初 (上部) の入力の中に 2 番目 (下部) の入力に一致する行がある場合に該当する行を返します。The Left Semi Join operator returns each row from the first (top) input when there is a matching row in the second (bottom) input. Argument 列 (引数) に結合述語がない場合は、各行が一致する行になります。If no join predicate exists in the Argument column, each row is a matching row. Left Semi Join は論理操作です。Left Semi Join is a logical operator.
Log Row Scan 操作アイコンLog row scan operator icon Log Row ScanLog Row Scan Log Row Scan 操作は、トランザクション ログをスキャンします。The Log Row Scan operator scans the transaction log. Log Row Scan は論理操作でもあり、物理操作でもあります。Log Row Scan is a logical and physical operator.
Merge Interval 操作アイコンMerge interval operator icon Merge IntervalMerge Interval Merge Interval 操作は、重複している可能性のある複数の間隔をマージして、重複しない最小限の間隔を作成します。この間隔は、インデックス エントリのシークに使用されます。The Merge Interval operator merges multiple (potentially overlapping) intervals to produce minimal, nonoverlapping intervals that are then used to seek index entries. 通常、Merge Interval 操作は、 Constant Scan 操作上にある 1 つ以上の Compute Scalar 操作上にあります。Compute Scalar 操作は、Merge Interval 操作がマージする間隔 (1 行の中の列として表されます) を構築します。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 は論理操作でもあり、物理操作でもあります。Merge Interval is a logical and physical operator.
Merge Join 操作アイコンMerge join operator icon マージ結合Merge Join Merge Join 操作は Inner Join、Left Outer Join、Left Semi Join、Left Anti Semi Join、Right Outer Join、Right Semi Join、Right Anti Semi Join、Union の各論理操作を実行します。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.

Merge Join 操作の Argument 列には、この操作によって一対多の結合が実行されている場合は MERGE:() 述語が、多対多の結合が実行されている場合は MANY-TO-MANY MERGE:() 述語が設定されます。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. また、 Argument 列には、操作の実行に使用される列のコンマ区切りリストも設定されます。The Argument column also includes a comma-separated list of columns used to perform the operation. Merge Join 操作には、それぞれの列を基準に並べ替えられた 2 つの入力が必要です。この並べ替えを行うときは、クエリ プランに明示的な並べ替え操作を挿入することが可能です。The Merge Join operator requires two inputs sorted on their respective columns, possibly by inserting explicit sort operations into the query plan. 明示的な並べ替えが必要でない場合、Merge Join 操作は特に効果的です。たとえば、データベースに適切な B ツリー インデックスがある場合、またはマージ結合とロール アップを含むグループ化など、複数の操作で並べ替え順序を利用できる場合などです。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. Merge Join は物理操作です。Merge Join is a physical operator.
Nested Loops 操作アイコンNested loops operator icon Nested LoopsNested Loops Nested Loops 操作は、内部結合、左外部結合、左半結合、左反半結合の各論理操作を実行します。The Nested Loops operator performs the inner join, left outer join, left semi join, and left anti semi join logical operations. ネステッド ループ結合では、外部テーブルの行ごとに内部テーブルが検索されます。検索には、通常はインデックスが使用されます。Nested loops joins perform a search on the inner table for each row of the outer table, typically using an index. クエリ プロセッサにより、予想コストに基づいて、内部入力でインデックスを検索する場所の絞り込みを向上するために、外部入力を並べ替えるかどうかが判断されます。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. 実行される論理操作に基づいて、 Argument 列の述語 (省略可能) に適合するすべての行が、該当する行として返されます。Any rows that satisfy the (optional) predicate in the Argument column are returned as applicable, based on the logical operation being performed. Nested Loops は物理操作です。Nested Loops is a physical operator.
Nonclustered Index Delete 操作アイコンNonclustered index delete operator icon Nonclustered Index DeleteNonclustered Index Delete Nonclustered Index Delete 操作は、 Argument 列に指定された非クラスター化インデックスから入力行を削除します。The Nonclustered Index Delete operator deletes input rows from the nonclustered index specified in the Argument column. Nonclustered Index Delete は物理操作です。Nonclustered Index Delete is a physical operator.
Nonclustered Index Insert 操作アイコンNonclustered index insert operator icon Index InsertIndex Insert Index Insert 操作は、 Argument 列に指定された非クラスター化インデックスに入力からの行を挿入します。The Index Insert operator inserts rows from its input into the nonclustered index specified in the Argument column. また、 Argument 列には、各列に設定する値を示す SET:() 述語も含まれます。The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Index Insert は物理操作です。Index Insert is a physical operator.
Nonclustered Index Scan 操作アイコンNonclustered index scan operator icon Index ScanIndex Scan Index Scan 操作は、 Argument 列 (引数) に指定された非クラスター化インデックスからすべての行を取得します。The Index Scan operator retrieves all rows from the nonclustered index specified in the Argument column. Argument 列にオプションの WHERE:() 述語がある場合、述語に適合する行だけが返されます。If an optional WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Index Scan は論理操作でもあり、物理操作でもあります。Index Scan is a logical and physical operator.
Nonclustered Index Seek 操作アイコンNonclustered index seek operator icon Index SeekIndex Seek Index Seek 操作は、インデックスのシーク機能を使用して非クラスター化インデックスから行を取得します。The Index Seek operator uses the seeking ability of indexes to retrieve rows from a nonclustered index. Argument 列 (引数) には、使用される非クラスター化インデックスの名前が含まれます。The Argument column contains the name of the nonclustered index being used. また、SEEK:() 述語も含まれます。It also contains the SEEK:() predicate. ストレージ エンジンはインデックスを使用して、SEEK:() 述語に適合する行だけを処理します。The storage engine uses the index to process only those rows that satisfy the SEEK:() predicate. 必要に応じて、この列には WHERE:() 述語が含まれることがあります。この述語は、ストレージ エンジンによって SEEK:() 述語に適合するすべての行に対して評価されます (この処理を行うのにインデックスは使用されません)。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). Argument 列 (引数) に ORDERED 句が含まれていると、クエリ プロセッサでは行を非クラスター化インデックスの並べ替え順で返す必要があると判断します。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. ORDERED 句がない場合は、ストレージ エンジンにより、最適な方法でインデックスが検索されます (出力が並べ替えられるとは限りません)。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). 出力順序が保持されるようにすると、並べ替えずに出力する場合よりも効率が低下する可能性があります。Allowing the output to retain its ordering may be less efficient than producing nonsorted output. Index Seek は論理操作でもあり、物理操作でもあります。Index Seek is a logical and physical operator.
Nonclustered Index Spool 操作アイコンNonclustered index spool operator icon Index SpoolIndex Spool Index Spool 物理操作の Argument 列には、SEEK:() 述語が含まれています。The Index Spool physical operator contains a SEEK:() predicate in the Argument column. Index Spool 操作では入力行をスキャンし、隠しスプール ファイル ( tempdb データベースに格納され、クエリの有効期間内のみ存在します) に各行のコピーを格納して、行に非クラスター化インデックスを作成します。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. さらに、インデックスのシーク機能を使用して、SEEK:() 述語に適合する行だけを出力します。This allows you to use the seeking capability of indexes to output only those rows that satisfy the SEEK:() predicate. この操作が再度使用され ( Nested Loops 操作で使用される場合など)、再バインドが不要な場合は、入力を再スキャンする代わりにスプールされたデータが使用されます。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 操作アイコンNonclustered index update operator icon Nonclustered Index UpdateNonclustered Index Update Nonclustered Index Update 物理操作は、 Argument 列 (引数) に指定された非クラスター化インデックスの入力に基づいて行を更新します。The Nonclustered Index Update physical operator updates rows from its input in the nonclustered index specified in the Argument column. SET:() 述語がある場合、更新される各列がこの値に設定されます。If a SET:() predicate is present, each updated column is set to this value. Nonclustered Index Update は物理操作です。Nonclustered Index Update is a physical operator.
Online Index Insert 操作アイコンOnline index insert operator icon Online Index InsertOnline Index Insert Online Index Insert 物理操作は、インデックスの作成操作、変更操作、または削除操作がオンラインで実行されることを示します。The Online Index Insert physical operator indicates that an index create, alter, or drop operation is performed online. つまり、インデックス操作の実行中に、基になるテーブル データをユーザーが利用することができます。That is, the underlying table data remains available to users during the index operation.
なしNone ParallelismParallelism Parallelism 操作 (または交換反復子) は、Distribute Streams、Gather Streams、Repartition Streams の各論理操作を実行します。The Parallelism operator (or Exchange Iterator) performs the distribute streams, gather streams, and repartition streams logical operations. Argument 列には、パーティション分割される列のコンマ区切りのリストを指定した PARTITION COLUMNS:() 述語を含めることができます。The Argument columns can contain a PARTITION COLUMNS:() predicate with a comma-separated list of the columns being partitioned. Argument 列には、パーティション分割中に並べ替え順序を保持する列のリストを指定した ORDER BY:() 述語も含めることができます。The Argument columns can also contain an ORDER BY:() predicate, listing the columns to preserve the sort order for during partitioning. Parallelism は物理操作です。Parallelism is a physical operator. Parallelism 操作の詳細については、「Craig Freedman's blog series」 (Craig Freedman のブログ シリーズ) を参照してください。For more information about the Parallelism operator, see Craig Freedman's blog series.

注: クエリが並列クエリとしてコンパイルされても、実行時に直列クエリとして実行されると、SET STATISTICS XML によって生成された、または [SQL Server Management Studio]SQL Server Management Studio[実際の実行プランを含める] オプションを使用して生成されたプラン表示出力に Parallelism 操作の RunTimeInformation 要素は含まれません。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 Studio]SQL Server Management Studio will not contain the RunTimeInformation element for the Parallelism operator. SET STATISTICS PROFILE の出力では、 Parallelism 操作に対する実際の行数および実際の実行回数としてゼロが表示されます。In SET STATISTICS PROFILE output, the actual row counts and actual number of executes will display zeroes for the Parallelism operator. いずれの状況が発生した場合も、 Parallelism 操作が実行時のクエリ プランではなく、クエリのコンパイル中にのみ使用されたことを示します。When either condition occurs, it means that the Parallelism operator was only used during query compilation and not in the run-time query plan. サーバー上での同時実行の負荷が高い場合は、並列クエリ プランが直列に実行されることがあります。Note that sometimes parallel query plans are run in serial if there is a high concurrent load on the server.
Parameter Table Scan 操作アイコンParameter table scan operator icon Parameter Table ScanParameter Table Scan Parameter Table Scan 操作により、現在のクエリのパラメーターとして機能しているテーブルをスキャンします。The Parameter Table Scan operator scans a table that is acting as a parameter in the current query. 通常、この操作は、ストアド プロシージャ内の INSERT クエリに対して使用されます。Typically, this is used for INSERT queries within a stored procedure. Parameter Table Scan は論理操作でもあり、物理操作でもあります。Parameter Table Scan is a logical and physical operator.
なしNone Partial AggregatePartial Aggregate Partial Aggregate は、並列プランで使用されます。Partial Aggregate is used in parallel plans. ディスクへの書き込み ("スピル" と呼ばれます) が必要にならないように、できるだけ多くの入力行に集計関数が適用されます。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 は、パーティション集計を実装する唯一の物理操作 (反復子) です。Hash Match is the only physical operator (iterator) that implements partition aggregation. Partial Aggregate は論理操作です。Partial Aggregate is a logical operator.
Population Query カーソル操作アイコンPopulation query cursor operator icon Population QueryPopulation Query Population Query 操作によって、カーソルが開かれたときにカーソルの作業テーブルを作成します。The Population Query operator populates the work table of a cursor when the cursor is opened.
Refresh Query カーソル操作アイコンRefresh query cursor operator icon Refresh QueryRefresh Query Refresh Query 操作は、フェッチ バッファーから行の現在のデータをフェッチします。The Refresh Query operator fetches current data for rows in the fetch buffer.
Remote Delete 操作アイコンRemote delete operator icon Remote DeleteRemote Delete Remote Delete 操作は、リモート オブジェクトから入力行を削除します。The Remote Delete operator deletes the input rows from a remote object. Remote Delete は論理操作でもあり、物理操作でもあります。Remote Delete is a logical and physical operator.
Remote Index Seek プラン表示操作Remote index seek showplan operator Remote Index ScanRemote Index Scan Remote Index Scan 操作は、Argument 列に指定されたリモート インデックスをスキャンします。The Remote Index Scan operator scans the remote index specified in the Argument column. Remote Index Scan は論理操作でもあり、物理操作でもあります。Remote Index Scan is a logical and physical operator.
Remote Index Seek プラン表示操作Remote index seek showplan operator Remote Index SeekRemote Index Seek Remote Index Seek 操作は、リモート インデックス オブジェクトのシーク機能を使用して行を取得します。The Remote Index Seek operator uses the seeking ability of a remote index object to retrieve rows. Argument 列には、使用されているリモート インデックスの名前と SEEK:() 述語が含まれます。The Argument column contains the name of the remote index being used and the SEEK:() predicate. Remote Index Seek は論理操作でもあり、物理操作でもあります。Remote Index Seek is a logical physical operator.
Remote Insert 操作アイコンRemote insert operator icon Remote InsertRemote Insert Remote Insert 操作では、入力行がリモート オブジェクトに挿入されます。The Remote Insert operator inserts the input rows into a remote object. Remote Insert は論理操作でもあり、物理操作でもあります。Remote Insert is a logical and physical operator.
Remote Query 操作アイコンRemote query operator icon Remote QueryRemote Query Remote Query 操作では、リモート ソースにクエリを送信します。The Remote Query operator submits a query to a remote source. リモート サーバーに送信されるクエリのテキストは Argument 列にあります。The text of the query sent to the remote server appears in the Argument column. Remote Query は論理操作でもあり、物理操作でもあります。Remote Query is a logical and physical operator.
Remote Scan 操作アイコンRemote scan operator icon Remote ScanRemote Scan Remote Scan 操作は、リモート オブジェクトをスキャンします。The Remote Scan operator scans a remote object. リモート オブジェクト名は Argument 列 (引数) にあります。The name of the remote object appears in the Argument column. Remote Scan は論理操作でもあり、物理操作でもあります。Remote Scan is a logical and physical operator.
Remote Update 操作アイコンRemote update operator icon Remote UpdateRemote Update Remote Update 操作は、リモート オブジェクトの入力行を更新します。The Remote Update operator updates the input rows in a remote object. Remote Update は論理操作でもあり、物理操作でもあります。Remote Update is a logical and physical operator.
Repartition Streams 並列操作アイコンRepartition streams parallelism operator icon Repartition StreamsRepartition Streams Repartition Streams 操作 (または交換反復子) では、複数のストリームを使用して、複数のレコード ストリームが生成されます。The Repartition Streams operator (or exchange iterator) consumes multiple streams and produces multiple streams of records. レコードの内容と形式は変更されません。The record contents and format are not changed. クエリ オプティマイザーでビットマップ フィルターが使用される場合は、出力ストリームの行数が少なくなります。If the query optimizer uses a bitmap filter, the number of rows in the output stream is reduced. 入力ストリームの各レコードは、1 つの出力ストリームに配置されます。Each record from an input stream is placed into one output stream. この操作で順序を保持する場合、すべての入力ストリームが並べ替えられ、いくつかの並べ替え済みの出力ストリームにマージされる必要があります。If this operator is order preserving, all input streams must be ordered and merged into several ordered output streams. 出力をパーティション分割する場合、 Argument 列に PARTITION COLUMNS:() 述語とパーティション列が設定されます。出力を並べ替える場合、 Argument 列に ORDER BY:() 述語および並べ替える列が表示されます。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 は論理操作です。Repartition Streams is a logical operator. この操作は、並列クエリ プランのみで使用されます。The operator is used only in parallel query plans.
Result 言語要素アイコンResult language element icon 結果Result Result 操作は、クエリ プランの最後に返されるデータです。The Result operator is the data returned at the end of a query plan. これは通常、プラン表示のルート要素です。This is usually the root element of a Showplan. Result は言語要素です。Result is a language element.
RID Lookup 操作アイコンRID lookup operator icon RID LookupRID Lookup RID Lookup は、指定された行識別子 (RID) を使用する、ヒープ上のブックマーク参照です。RID Lookup is a bookmark lookup on a heap using a supplied row identifier (RID). Argument 列 (引数) には、テーブル内の行を検索するために使用されるブックマーク ラベルや、行が検索されるテーブルの名前が含まれます。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 は、常に NESTED LOOP JOIN を伴います。RID Lookup is always accompanied by a NESTED LOOP JOIN. RID Lookup は物理操作です。RID Lookup is a physical operator. ブックマーク参照の詳細については、MSDN の SQL Server ブログの「ブックマーク参照」を参照してください。For more information about bookmark lookups, see "Bookmark Lookup" on the MSDN SQL Server blog.
Row Count Spool 操作アイコンRow count spool operator icon Row Count SpoolRow Count Spool Row Count Spool 操作では入力がスキャンされて存在する行数がカウントされ、同数の行がデータなしで返されます。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. この操作は、行に含まれているデータではなく、行の存在チェックが重要な場合に使用されます。This operator is used when it is important to check for the existence of rows, rather than the data contained in the rows. たとえば、 Nested Loops 操作で左半結合操作が実行され、結合述語が内部入力に適用される場合、 Nested Loops 操作の内部入力の上に Row Count Spool が配置されることがあります。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. その後、 Nested Loops 操作では、Row Count Spool 操作から出力される行数が特定され (内部からの実際のデータは必要ないため)、外部行を返すかどうかが判断されます。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. Row Count Spool は物理操作です。Row Count Spool is a physical operator.
なしNone Right Anti Semi JoinRight Anti Semi Join Right Anti Semi Join 操作は、2 番目 (下部) の入力の中で最初 (上部) の入力に一致する行がない各行を出力します。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. 一致行は、 Argument 列の述語に適合する行として定義されます。述語がない場合は、各行が一致行になります。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 は論理操作です。Right Anti Semi Join is a logical operator.
なしNone Right Outer JoinRight Outer Join Right Outer Join 操作は、2 番目 (下部) の入力と最初 (上部) の入力の一致行との結合に適合する各行を返します。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. また、2 番目の入力に最初の入力に一致する行がない場合は、2 番目の入力が NULL と結合された行も返します。It also returns any rows from the second input that had no matching rows in the first input, joined with NULL. Argument 列 (引数) に結合述語がない場合は、各行が一致する行になります。If no join predicate exists in the Argument column, each row is a matching row. Right Outer Join は論理操作です。Right Outer Join is a logical operator.
なしNone Right Semi JoinRight Semi Join Right Semi Join 操作は、2 番目 (下部) の入力の中に最初 (上部) の入力と一致する行があれば、該当する行を返します。The Right Semi Join operator returns each row from the second (bottom) input when there is a matching row in the first (top) input. Argument 列 (引数) に結合述語がない場合は、各行が一致する行になります。If no join predicate exists in the Argument column, each row is a matching row. Right Semi Join は論理操作です。Right Semi Join is a logical operator.
Segment 操作アイコンSegment operator icon SegmentSegment Segment は論理操作でもあり、物理操作でもあります。Segment is a physical and a logical operator. この操作は、1 つまたは複数の列の値に基づいて入力セットをセグメントに分割します。It divides the input set into segments based on the value of one or more columns. これらの列は、 Segment 操作に引数として表示されます。These columns are shown as arguments in the Segment operator. この操作では、セグメントは 1 つずつ出力されます。The operator then outputs one segment at a time.
Sequence 操作アイコンSequence operator icon SequenceSequence Sequence 操作によって、広範な更新プランを実行します。The Sequence operator drives wide update plans. 機能的には、各入力を順次 (上から下へ) 実行します。Functionally, it executes each input in sequence (top to bottom). 通常、各入力は異なるオブジェクトの更新です。Each input is usually an update of a different object. 最後の (下部の) 入力からの行のみを返します。It returns only those rows that come from its last (bottom) input. Sequence は論理操作でもあり、物理操作でもあります。Sequence is a logical and physical operator.
Sequence Project 操作アイコンSequence project operator icon Sequence ProjectSequence Project Sequence Project 操作は、列を追加し、順序付けされたセットに対する計算を実行します。The Sequence Project operator adds columns to perform computations over an ordered set. この操作は、1 つまたは複数の列の値に基づいて入力セットをセグメントに分割します。It divides the input set into segments based on the value of one or more columns. この操作では、セグメントは 1 つずつ出力されます。The operator then outputs one segment at a time. これらの列は、 Sequence Project 操作の引数として表示されます。These columns are shown as arguments in the Sequence Project operator. Sequence Project は論理操作でもあり、物理操作でもあります。Sequence Project is a logical and physical operator.
なしNone Segment RepartitionSegment Repartition 並列クエリ プランでは、反復子に概念上の領域が存在する場合があります。In a parallel query plan, sometimes there are conceptual regions of iterators. このような領域内にある反復子はすべて、並列スレッドにより実行できます。All of the iterators within such a region can be executed by parallel threads. 領域自体は、順次実行される必要があります。The regions themselves must be executed serially. 個別の領域内の Parallelism 反復子のいくつかは、 Branch Repartitionと呼ばれます。Some of the Parallelism iterators within an individual region are called Branch Repartition. このような 2 つの領域間の境界にある Parallelism 反復子は、 Segment Repartitionと呼ばれます。The Parallelism iterator at the boundary of two such regions is called Segment Repartition. Branch RepartitionSegment Repartition は論理操作です。Branch Repartition and Segment Repartition are logical operators.
Snapshot カーソル操作アイコンSnapshot cursor operator icon スナップショットSnapshot Snapshot 操作は、他のユーザーによる変更を表示しないカーソルを作成します。The Snapshot operator creates a cursor that does not see changes made by others.
Sort 操作アイコンSort operator icon SortSort Sort 操作は、すべての入力行を並べ替えます。The Sort operator sorts all incoming rows. Argument 列には、この操作によって重複が削除される場合は DISTINCT ORDER BY:() 述語が含まれ、それ以外の場合は ORDER BY:() 述語が含まれます。これらの述語では、並べ替える列の一覧がコンマで区切って指定されています。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. 列を昇順に並べ替える場合は、列名の前に値 ASC が付きます。降順に並べ替える場合は、列名の前に値 DESC が付きます。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 は論理操作でもあり、物理操作でもあります。Sort is a logical and physical operator.
Split 操作アイコンSplit operator icon SplitSplit Split 操作は、更新処理を最適化する場合に使用します。The Split operator is used to optimize update processing. この操作により、各更新操作が削除操作と挿入操作に分割されます。It splits each update operation into a delete and an insert operation. Split 操作は論理操作でもあり、物理操作でもあります。Split is a logical and physical operator.
Spool 操作アイコンSpool operator icon Eager SpoolEager Spool Eager Spool 操作は、入力全体を使用し、 tempdb データベースに格納されている一時隠しオブジェクトに各行を格納します。The Eager Spool operator takes the entire input, storing each row in a hidden temporary object stored in the tempdb database. この操作が再度使用され ( Nested Loops 操作で使用される場合など)、再バインドが不要な場合は、入力を再スキャンする代わりにスプールされたデータが使用されます。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. 再バインドが必要な場合は、スプールされたデータが破棄され、(再バインドされる) 入力の再スキャンによりスプール オブジェクトが再構築されます。If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. Eager 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 は論理操作です。Eager Spool is a logical operator.
Spool 操作アイコンSpool operator icon Lazy SpoolLazy Spool Lazy Spool 論理操作では、 tempdb データベースに格納された非表示の一時オブジェクトに入力からの各行を格納します。The Lazy Spool logical operator stores each row from its input in a hidden temporary object stored in the tempdb database. この操作が再度使用され ( Nested Loops 操作で使用される場合など)、再バインドが不要な場合は、入力を再スキャンする代わりにスプールされたデータが使用されます。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. 再バインドが必要な場合は、スプールされたデータが破棄され、(再バインドされる) 入力の再スキャンによりスプール オブジェクトが再構築されます。If rebinding is needed, the spooled data is discarded and the spool object is rebuilt by rescanning the (rebound) input. Lazy Spool 操作のスプール ファイルは "レイジー" 手法で構築されます。つまり、1 回にすべての行を処理するのではなく、スプールの親操作から行が要求されるたびに入力操作から行を取得し、その行をスプールに格納します。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 は論理操作です。Lazy Spool is a logical operator.
Spool 操作アイコンSpool operator icon SpoolSpool Spool 操作は、クエリの途中結果を tempdb データベースに保存します。The Spool operator saves an intermediate query result to the tempdb database.
Stream Aggregate 操作アイコンStream aggregate operator icon Stream AggregateStream Aggregate Stream Aggregate 操作は、1 つ以上の列を基準にして行をグループ化し、クエリから返される 1 つ以上の集計式を計算します。The Stream Aggregate operator groups rows by one or more columns and then calculates one or more aggregate expressions returned by the query. この操作の出力は、クエリ内のその後の操作から参照することも、クライアントに返すことも、あるいはその両方を行うこともできます。The output of this operator can be referenced by later operators in the query, returned to the client, or both. Stream Aggregate 操作を使用するには、グループ内で列を基準にして入力を並べ替えておく必要があります。The Stream Aggregate operator requires input ordered by the columns within its groups. 並べ替えられたインデックスのシークやスキャンまたは前の Sort 操作が原因でデータがまだ並べ替えられていない場合は、オプティマイザーによって、この操作の前に Sort 操作が使用されます。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. [SQL Server Management Studio]SQL Server Management Studioの SHOWPLAN_ALL ステートメントまたはグラフィカルな実行プランで、GROUP BY 述語の列は Argument 列に一覧表示され、集計式は Defined Values 列に一覧表示されます。In the SHOWPLAN_ALL statement or the graphical execution plan in [SQL Server Management Studio]SQL 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 は物理操作です。Stream Aggregate is a physical operator.
Switch 操作アイコンSwitch operator icon スイッチSwitch Switch は、 n 個の入力を取得する特殊な連結反復子です。Switch is a special type of concatenation iterator that has n inputs. 個々の Switch 操作には式が 1 つ関連付けられます。An expression is associated with each Switch operator. Switch操作は式の戻り値 (0 から n -1 までの範囲) に応じて、適切な入力ストリームを出力ストリームにコピーします。Depending on the return value of the expression (between 0 and n-1), Switch copies the appropriate input stream to the output stream. Switch 操作の用途の 1 つは、高速順方向専用カーソルを使用するクエリ プランに TOP などの特定の操作を実装することです。One use of Switch is to implement query plans involving fast forward cursors with certain operators such as the TOP operator. Switch は論理操作でもあり、物理操作でもあります。Switch is both a logical and physical operator.
Table Delete 操作アイコンTable delete operator icon Table DeleteTable Delete Table Delete 物理操作は、クエリ実行プランの Argument 列で指定されているテーブルから行を削除します。The Table Delete physical operator deletes rows from the table specified in the Argument column of the query execution plan.
Table Insert 操作アイコンTable insert operator icon Table InsertTable Insert Table Insert 操作では、クエリ実行プランの Argument 列で指定したテーブルに、入力からの行が挿入されます。The Table Insert operator inserts rows from its input into the table specified in the Argument column of the query execution plan. また、 Argument 列には、各列に設定する値を示す SET:() 述語も含まれます。The Argument column also contains a SET:() predicate, which indicates the value to which each column is set. Table Insert に挿入値の子がない場合、挿入される行は、Insert 操作自体から取得されます。If Table Insert has no children for insert values, then the row inserted is taken from the Insert operator itself. Table Insert は物理操作です。Table Insert is a physical operator.
Table Merge 操作アイコンTable merge operator Table MergeTable Merge Table Merge 操作は、マージ データ ストリームをヒープに適用します。The Table Merge operator applies a merge data stream to a heap. この操作は、操作の Argument 列で指定されているテーブル内の行を削除、更新、または挿入します。The operator deletes, updates, or inserts rows in the table specified in the Argument column of the operator. 実際の操作は、操作の Argument 列に指定された ACTION 列のランタイム値によって異なります。The actual operation performed depends on the run-time value of the ACTION column specified in the Argument column of the operator. Table Merge は物理操作です。Table Merge is a physical operator.
Table Scan 操作アイコンTable scan operator icon Table ScanTable Scan Table Scan 操作は、クエリ実行プランの Argument 列 (引数) で指定されているテーブルからすべての行を取得します。The Table Scan operator retrieves all rows from the table specified in the Argument column of the query execution plan. Argument 列に WHERE:() 述語がある場合、述語に適合する行だけが返されます。If a WHERE:() predicate appears in the Argument column, only those rows that satisfy the predicate are returned. Table Scan は論理操作でもあり、物理操作でもあります。Table Scan is a logical and physical operator.
Table Spool 操作アイコンTable spool operator icon Table SpoolTable Spool Table Spool 操作は入力をスキャンし、隠しスプール テーブルに各行のコピーを格納します。この隠しスプール テーブルは tempdb データベースに格納され、クエリの有効期間だけ存在します。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. この操作が再度使用され ( Nested Loops 操作で使用される場合など)、再バインドが不要な場合は、入力を再スキャンする代わりにスプールされたデータが使用されます。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 は物理操作です。Table Spool is a physical operator.
Table Spool 操作アイコンTable spool operator icon Window SpoolWindow Spool Window Spool 操作は、各行をその行に関連付けられたウィンドウを表す行セットに拡張します。The Window Spool operator expands each row into the set of rows that represents the window associated with it. クエリでは、OVER 句でクエリの結果セット内のウィンドウを定義してから、ウィンドウ関数がウィンドウ内の各行の値を計算します。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 は論理操作でもあり、物理操作でもあります。Window Spool is a logical and physical operator.
Table Update 操作アイコンTable update operator icon Table UpdateTable Update Table Update 物理操作は、クエリ実行プランの Argument 列 (引数) で指定されているテーブルの入力行を更新します。The Table Update physical operator updates input rows in the table specified in the Argument column of the query execution plan. SET:() 述語によって、更新された各列の値が決定されます。The SET:() predicate determines the value of each updated column. これらの値は、SET 句、またはこの操作内かこのクエリ内で参照されることがあります。These values may be referenced in the SET clause or elsewhere within this operator as well as elsewhere within this query.
Table-valued Function 操作アイコンTable-valued function operator icon Table-valued FunctionTable-valued Function Table-valued Function 操作は、テーブル値関数 ( Transact-SQLTransact-SQL または CLR のいずれか) を評価し、結果行を tempdb データベースに格納します。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. 親反復子により行が要求されると、 Table-valued Functiontempdbから行を返します。When the parent iterators request the rows, Table-valued Function returns the rows from tempdb.

テーブル値関数への呼び出しを伴うクエリにより、 Table-valued Function 反復子を備えたクエリ プランが生成されます。Queries with calls to table-valued functions generate query plans with the Table-valued Function iterator. さまざまなパラメーター値を使用してTable-valued Function を評価できます。Table-valued Function can be evaluated with different parameter values:

-
Table-valued Function XML Reader では、パラメーターとして XML BLOB が入力され、XML ノードを表す行セットが XML ドキュメントの順序で生成されます。Table-valued Function XML Reader inputs an XML BLOB as a parameter and produces a rowset representing XML nodes in XML document order. 他の入力パラメーターにより、XML ドキュメントのサブセットに返される XML ノードが制限されることがあります。Other input parameters may restrict XML nodes returned to a subset of XML document.

-Table Valued Function XML Reader with XPath filter は、出力を XPath 式が満たされる XML ノードに限定する、特殊な種類の XML Reader Table-valued Function です。-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.

Table-valued Function は論理操作でもあり、物理操作でもあります。Table-valued Function is a logical and physical operator.
なしNone Top N SortTop N Sort Top N Sort は、結果セット全体ではなく最初の N 行のみを必要とする点を除いては、 Sort 反復子と類似しています。Top N Sort is similar to the Sort iterator, except that only the first N rows are needed, and not the entire result set. Nの値が小さい場合、 SQL ServerSQL Server のクエリ実行エンジンは、メモリ内全体の並べ替え操作を実行しようとします。For small values of N, the SQL ServerSQL Server query execution engine attempts to perform the entire sort operation in memory. Nの値が大きい場合、クエリ実行エンジンは、 N をパラメーターとしない、より汎用的な並べ替え方法を使用します。For large values of N, the query execution engine resorts to the more generic method of sorting to which N is not a parameter.
Top 操作アイコンTop operator icon TopTop Top 操作は、入力をスキャンし、並べ替え順に基づいて、指定した最初の数または最初の比率の行だけを返します。The Top operator scans the input, returning only the first specified number or percent of rows, possibly based on a sort order. Argument 列 (引数) には、タイ (同順位) をチェックする列のリストが入ることもあります。The Argument column can contain a list of the columns that are being checked for ties. Top 操作は、更新プランで行数制限を行うときに使用します。In update plans, the Top operator is used to enforce row count limits. Top は論理操作でもあり、物理操作でもあります。Top is a logical and physical operator.
拡張操作 (UDX) アイコンExtended operator (UDX) icon UDXUDX 拡張操作 (UDX) には、 SQL ServerSQL Serverの数ある操作のうちの XQuery 操作と XPath 操作が実装されています。Extended Operators (UDX) implement one of many XQuery and XPath operations in SQL ServerSQL Server. すべての UDX 操作には、論理操作と物理操作の両方があります。All UDX operators are both logical and physical operators.

拡張操作 (UDX) FOR XML は、単一出力行の単一 BLOB 列に XML 表記で入力するリレーショナル行セットをシリアル化するのに使用します。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. この操作は、順序を区別する XML 集計操作です。It is an order sensitive XML aggregation operator.

拡張操作 (UDX) XML SERIALIZER は、順序を区別する XML 集計操作です。Extended operator (UDX) XML SERIALIZER is an order sensitive XML aggregation operator. この操作は、XML ドキュメントの順序で XML ノードまたは XQuery スカラーを表す行を入力し、単一出力行の単一 XML 列にシリアル化した XML BLOB を生成します。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.

拡張操作 (UDX) XML FRAGMENT SERIALIZER は、XQuery の挿入データの変更拡張に挿入される XML フラグメントを表す入力行の処理に使用する XML SERIALIZER の特殊な形式の操作です。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.

拡張操作 (UDX) XQUERY STRING は、XML ノードを表す入力行の XQuery 文字列値を評価します。Extended operator (UDX) XQUERY STRING evaluates the XQuery string value of input rows representing XML nodes. これは順序を区別する文字列集計操作です。It is an order sensitive string aggregation operator. この操作では、入力の文字列値を含む XQuery スカラーを表す列を持つ 1 行が出力されます。It outputs one row with columns representing the XQuery scalar that contains string value of the input.

拡張操作 (UDX) XQUERY LIST DECOMPOSER は、XQuery のリスト分解操作です。Extended operator (UDX) XQUERY LIST DECOMPOSER is an XQuery list decomposition operator. 入力が XSD リストで想定されている型の場合、この操作では、XML ノードを表す入力行ごとに、リスト要素の値を含む XQuery スカラーを表す 1 行以上の行が生成されます。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.

拡張操作 (UDX) XQUERY DATA は、XML ノードを表す入力の XQuery の fn:data() 関数を評価します。Extended operator (UDX) XQUERY DATA evaluates the XQuery fn:data() function on input representing XML nodes. これは順序を区別する文字列集計操作です。It is an order sensitive string aggregation operator. この操作では、 fn:data() 関数の結果を含む XQuery スカラーを表す列を持つ 1 行が出力されます。It outputs one row with columns representing XQuery scalar that contains the result of fn:data().

拡張操作 (UDX) XQUERY CONTAINS は、XML ノードを表す入力の XQuery の fn:data() 関数を評価します。Extended operator XQUERY CONTAINS evaluates the XQuery fn:contains() function on input representing XML nodes. これは順序を区別する文字列集計操作です。It is an order sensitive string aggregation operator. この操作では、 fn:contains() 関数の結果を含む XQuery スカラーを表す列を持つ 1 行が出力されます。It outputs one row with columns representing XQuery scalar that contains the result of fn:contains().

拡張操作 UPDATE XML NODE は、XML 型の modify() メソッドで XQuery の置換データの変更拡張の XML ノードを更新します。Extended operator UPDATE XML NODE updates XML node in the XQuery replace data modification extension in the modify() method on XML type.
なしNone UnionUnion Union 操作は、複数の入力をスキャンし、重複行を削除して、スキャンした各行を出力します。The Union operator scans multiple inputs, outputting each row scanned and removing duplicates. Union は論理操作です。Union is a logical operator.
Update (データベース エンジン) 操作アイコンUpdate (Database Engine) operator icon UpdateUpdate Update 操作は、クエリ実行プランの Argument 列で指定されているオブジェクトの入力の各行を更新します。The Update operator updates each row from its input in the object specified in the Argument column of the query execution plan. Update は論理操作です。Update is a logical operator. 物理操作には、 Table UpdateIndex Update、および Clustered Index Updateがあります。The physical operator is Table Update, Index Update, or Clustered Index Update.
While 言語要素アイコンWhile language element icon WhileWhile While 操作は Transact-SQLTransact-SQL while ループを実装します。The While operator implements the Transact-SQLTransact-SQL while loop. While は言語要素です。While is a language element