SQL Server代码未并行执行
哪些SQL函数确切地抑制了SQL Server中的并行性?我询问是因为我正在尝试运行以下查询:SQL Server代码未并行执行,sql,sql-server,parallel-processing,Sql,Sql Server,Parallel Processing,哪些SQL函数确切地抑制了SQL Server中的并行性?我询问是因为我正在尝试运行以下查询: SELECT SUM(_dt7) AS _dt7, SUM(_dt8) AS _dt8, SUM(_FPRecCount) as _FPRecCount, _FPBucket FROM ( SELECT _dt7,_dt8, 1 as _FPRecCount, (CAST(ABS(CHECKSUM(_ID)) as INT) % 5)+1 AS _FPBucket FROM [E
SELECT SUM(_dt7) AS _dt7, SUM(_dt8) AS _dt8, SUM(_FPRecCount) as _FPRecCount, _FPBucket
FROM (
SELECT _dt7,_dt8, 1 as _FPRecCount, (CAST(ABS(CHECKSUM(_ID)) as INT) % 5)+1 AS _FPBucket
FROM [Example Database].[dbo].[_FP_Longer Test Data (Long)]
WHERE (1=1 AND (3=3 ) AND 2=2)
) AS q
GROUP BY _FPBucket
但执行计划似乎从来都不想并行执行,总是串行执行
我想知道是不是CAST()
、ABS()
或CHECKSUM()
函数阻止了它
本文
以及它提到的文件
两者都暗指“随机内在函数”抑制并行性,但并没有给出完整的列表
以下是执行计划的内容:
在马丁·史密斯的协助下,该计划没有并行执行的原因是
NonParallelPlanReason="NoParallelPlansInDesktopOrExpressEdition"
可以在执行计划XML中找到。并行性对您意味着什么,您是如何注意到代码不是并行运行的?请逐个注释函数,看看哪些函数排除了并行性。@mikemorris-添加了执行计划图像。没有“parallelism”节点。您可以指定执行计划中第一个运算符的“Subtree cost”属性值吗?我不希望parallelism可以提高运行时间tbh,但最好有一个并行计划来测试这一点。什么版本的SQL Server?执行计划XML是否包含非并行计划原因