A+Bの合計を生成したい2つのデータ列AとBを持つ単純なデータロギングテーブルがあります。ただし、AとBのいずれかまたは両方がnullになる可能性があります。テーブルには、主キーであるタイムスタンプ列もあります
この猫の皮を剥ぐ方法はいくつかありますが、タイムスタンプの範囲でデータを合計するのに適した方法を知りたいと思いました。
1. SUM(Coalesce(A,0)+Coalesce(B,0))
2. SUM(Coalesce(A+B,A,B,0))
3. Coalesce( Sum(A), 0) + Coalesce( SUM(B), 0)
実行プランナーから次の結果が得られます。
フォーム選択ComputeScalarStream Aggregate Compute Scaler Clustered Index Seek 1 0%0%11%1%87% 2 0%0%11%1%87% フォーム選択ComputeScalarCompute Scaler Stream Aggregate Clustered Index Seek 3 0%0%0%12%88%
これまでクエリプランを詳しく調べたことがないので、数値の解釈方法がわかりません。一般に、右側に押すほど、全体的なパーセンテージが歪んでいると言っても過言ではありませんか?フォーム3を1と2よりも優れたものにしますか?