2016-12-30 33 views
2

SQL関数は、SQL Serverで並列処理を厳密に禁止していますか?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 [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()の機能がそれを禁止しているのかどうか疑問に思っています。

http://blogs.msdn.com/b/craigfr/archive/2007/04/17/parallel-query-execution-presentation.aspx

両方が「ランダム組み込み関数」禁止並列処理は、それが得られないという事実にほのめかすこの記事http://sqlblog.com/blogs/paul_white/archive/2011/12/23/forcing-a-parallel-query-execution-plan.aspx

、それが言及した文書リスト全体。 、

query execution plan

+0

並列処理はあなたにとって何を意味し、どのようにコードが並列実行されていないことに気づいていますか? –

+0

関数を1つずつコメントアウトし、並列性を排除する関数を参照してください。 –

+0

@mikemorris - 実行計画イメージを追加しました。 「並列」ノードはありません。 – dashnick

答えて

1

計画はマーティン・スミスからの支援から、並列に実行されなかった理由をその

することができ
NonParallelPlanReason="NoParallelPlansInDesktopOrExpressEdition" 

次のとおりです。ここで

は、実行計画は、次のようになります実行計画XMLに含まれています。

関連する問題