什么是执行计划中的并行性(分布流)

What is Parallelism(Distribute Streams) in Execution plan

Execution plan 中的 Parallelism(Distribute Streams) 操作是什么。为什么它增加了上一个操作的行数。

查询:

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'

执行计划:

从上面的执行计划可以清楚地看到行数从39,771增加到1,272,672。为什么会这样?

系统已决定它可以受益于并行执行某些处理。在这种情况下,显然决定让 32 个独立线程处理行集 (1272672 = 39771*32)。它不应该引起关注 - 通常 - "duplicate" 行将被后来的 (Gather Streams) 操作消除。