CTASステートメントに基づいて、読み取りと書き込みに対するDWUの影響をベンチマークするための簡単な分析をまとめています。
クエリは、1.7b 行のテーブルを 993k 行のテーブルに集約しています。ソース テーブルと宛先テーブルはラウンド ロビン分散です (ソースは長期間 RR ではなく、HASH に移動します) クエリはおおよそ次のとおりです。
create table CTAS_My_DWU_Test
with (distribution = round_robin)
as
select TableKey1, TableKey2,
SumCcolumn=SUM(SalesAmt),
MaxQuantity=MAX(SalesQty),
MinQuantity=MIN(SalesQty)
from FactSales
group by TableKey1, TableKey2
option (label='MyDWUTest');
sys.dm_pdw_dms_workers DMV を介してパフォーマンスを分析し、type=DIRECT_READER と type=WRITER の両方について、各ディストリビューションの平均 bytes_per_second を取得しています。
私のプロセスは、DWU を変更し、CTAS を削除して再作成し、DMV のデータを分析することです。
DWU を増やしても、一貫したパフォーマンスの向上が見られません。私の目標は、計算量の増加の明確な証拠を探すことですが、DWU が大きいほど遅くなり、DWU が小さい場合よりも返される bytes_per_sec が少なくなることがあります。
スケーリング プロセスを経ずに、同じ DWU で CTAS ステートメントを 2 回実行した場合、2 回目以降の実行は 10 倍近く速く実行されます。
1 つのテーブルに基づくプロセスのヘルプを探しており、現時点ではデータの移動/結合を方程式から除外したいと考えています。