Что такое Parallelism(Distribute Streams)
Работа в Execution plan
. Почему он увеличивает количество строк из предыдущей операции.Что такое параллелизм (распределение потоков) в плане выполнения
Запрос:
SELECT TOP 5000 MM.MEMBER_ID,
MM.MEMBER_NO,
MM.MEMBER_NAME,
MM.TRADE_CLASS,
MT.DESCRIPTION,
MS.DESCRIPTION,
MAI.ADDRESS_1,
MAI.ADDRESS_2,
MAI.CITY,
MAI.STATE,
MAI.ZIP
FROM MEMBER_MASTER MM
INNER JOIN MEMBER_TYPE MT
ON MT.CODE = MM.MEMBER_TYPE
INNER JOIN MEMBER_STATUS MS
ON MS.CODE = MM.MEMBER_STATUS
INNER JOIN MEMBER_ADDRESS_INFO MAI
ON MM.MEMBER_ID = MAI.MEMBER_ID
WHERE MAI.PRIMARY_ADDRESS_FLAG = 'YES'
План выполнения:
Из приведенного выше плана выполнения вы можете ясно видеть, что строки COUNT увеличивается с 39,771 к 1,272,672. Почему это происходит?
Это вызовет проблемы с производительностью. Также, что «операция» (Join и т. Д.) Заставляет планировщик выполнения использовать «Параллелизм (распределять потоки)» –
@Fireblade - он * не должен * вызывать проблему - но обратите внимание, что я довольно cagey. Оптимизатор имеет, исторически, иногда параллельные операции, которые были бы быстрее, чем последовательные процессы, или с меньшим параллелизмом. Вот почему существует подсказка [MAXDOP'] (https://msdn.microsoft.com/en-us/library/ms181714.aspx), если вам нужно заставить оптимизатора отказаться от параллельных планов. Не трогайте его, если вы не продемонстрировали проблему с производительностью *. Параллелизм используется несколько раз в плане для * поддержки * операций объединения. –
Спасибо за разъяснение :) –