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'
执行计划:
根据上述执行计划,您可以清楚地看到行数从 39,771 增加到 1,272,672 。为什么会这样?
答案 0 :(得分:4)
系统已经决定它可以从并行执行某些处理中受益。在这种情况下,它显然决定让32个独立的线程与这组行一起工作(1272672 = 39771 * 32)。它不应该成为一个值得关注的问题 - 通常 - 并且重复"稍后的if {fullmain.initres} > 0
then {fullmain.initres}
else 0.00
操作将删除行。