0
什麼是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'
執行計劃:
從你可以清楚地看到,該行計數從增加到上述執行計劃1,272,672。爲什麼會發生?
它會導致任何性能問題。還有哪個'operation'(Join etc ..)會導致執行計劃者使用'Parallelism(Distribute Streams)' –
@Fireblade - 它*不應該引起問題 - 但請注意我非常謹慎。從歷史上看,優化器有時會並行化操作,這些操作在串行過程中會更快,或者並行性更低。這就是爲什麼如果你需要強制優化器放棄並行計劃,那麼[查詢提示稱爲'MAXDOP'](https://msdn.microsoft.com/en-us/library/ms181714.aspx)。不要碰它,除非你已經表現出性能問題*。並行性在計劃中被多次使用以支持連接操作。 –
感謝您的澄清:) –