2016-08-25 67 views
0

我在一起進行了一些簡單的分析,以便基於CTAS語句對DWU對讀寫的影響進行基準測試。Benchmarking SQL數據倉庫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倍。

在基於一個表的過程中尋找幫助,想要暫時保持數據移動/連接方程。

回答

1

好問題!當數據移動較少時,Azure SQL數據倉庫的體系結構更具性能。我建議按照本文中的步驟來確定哪一步會降低進程的速度:https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-manage-monitor/

您的查詢可能會在串行中分析1.7b行上的每個聚合,但並不會最大限度地提高並行性我們的產品,但找出發生的最好方法是查看上面鏈接中的查詢計劃等。

至於重複運行時的10倍性能,這來自我們系統中的內部緩存。

讓我們知道您在查詢計劃,執行計劃等中找到的是什麼。