我正在整理一些简单的分析,以基于 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 语句两次,而不经过缩放过程,那么第二次和后续执行的运行速度会快近 10 倍。
在基于一张表的过程中寻求帮助,暂时不考虑数据移动/连接。