ParallelMergeOptions 列挙型


クエリで使用する、推奨される種類の出力マージを指定します。 つまり、さまざまなパーティションから返された結果を PLINQ がどのように単一の結果シーケンスにマージするかを示します。 これはヒントにすぎないため、すべてのクエリの並列化においてシステムが適用するとは限りません。This is a hint only, and may not be respected by the system when parallelizing all queries.

public enum class ParallelMergeOptions
public enum ParallelMergeOptions
type ParallelMergeOptions = 
Public Enum ParallelMergeOptions


AutoBuffered 2

システムが選択したサイズの出力バッファーを使用してマージを行います。Use a merge with output buffers of a size chosen by the system. 結果は、クエリのコンシューマーに返される前に、出力バッファーに蓄積されます。Results will accumulate into an output buffer before they are available to the consumer of the query.

Default 0

既定のマージの種類 (AutoBuffered) を使用します。Use the default merge type, which is AutoBuffered.

FullyBuffered 3

すべての出力バッファーを使用してマージを行います。Use a merge with full output buffers. システムは、クエリのコンシューマーに結果を返す前に、すべての結果をバッファーに蓄積します。The system will accumulate all of the results before making any of them available to the consumer of the query.

NotBuffered 1

出力バッファーを使用せずにマージを行います。Use a merge without output buffers. 結果の要素が算出されると、直ちにその要素がクエリのコンシューマーに返されます。As soon as result elements have been computed, make that element available to the consumer of the query.


使用NotBufferedしてストリームとして出力されるクエリに対して使用します。これにより、クエリ実行開始から生成される要素までの待機時間が最短になります。Use NotBuffered for queries that will be consumed and output as streams, this has the lowest latency between beginning query execution and elements being yielded. Sort (OrderBy, OrderByDescending) などの一部のクエリでは、バッファリングが不可欠であり、NotBuffered または自動バッファリングのヒントは無視されます。For some queries, such as those involving a sort (OrderBy, OrderByDescending), buffering is essential and a hint of NotBuffered or AutoBuffered will be ignored. ただし、クエリ自体で他の並べ替えが実行されていない限り、AsOrdered 演算子を使用して作成されたクエリをストリーム配信できます。However, queries that are created by using the AsOrdered operator can be streamed as long as no further sorting is performed within the query itself.

ほとんどAutoBufferedの場合に使用します。これが既定値です。Use AutoBuffered for most cases; this is the default. 待機時間と全体的なパフォーマンスのバランスが取れています。It strikes a balance between latency and overall performance.

情報FullyBufferedが必要になる前に出力全体を処理できる場合は、クエリに対してを使用します。Use FullyBuffered for queries when the entire output can be processed before the information is needed. このオプションは、情報を生成する前にすべての出力を累積できる場合に最適なパフォーマンスを提供します。ただし、ストリーム処理やクエリの途中での部分的な結果の表示には適していません。This option offers the best performance when all of the output can be accumulated before yielding any information, though it is not suitable for stream processing or showing partial results mid-query.