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
Наследование
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. Для некоторых запросов, например, включающих сортировку (OrderBy, OrderByDescending), буферизация является обязательной, и указание Нотбуфферед или автобуферизации будет проигнорировано.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.

Применяется к

Дополнительно