Synapse SQL 資源耗用量
本文說明 Synapse SQL 的資源耗用量模型。
無伺服器 SQL 集區
無伺服器 SQL 集區是每個查詢服務的費用,不需要您挑選正確的大小。 系統會根據您的需求自動調整,讓您不必管理基礎結構和挑選適當的大小供解決方案使用。
專用 SQL 集區 - 數據倉儲單位 (DWU) 和計算數據倉儲單位 (cDWU)
建議 選擇理想的數據倉儲單位數目來優化價格和效能,以及如何變更單位數目。
數據倉儲單位
Synapse SQL 集區代表正在布建的分析資源集合。 分析資源會定義為 CPU、記憶體和 IO 的組合。 這三個資源會組合成稱為「數據倉儲單位」(DWU)的計算規模單位。 DWU 能以抽象而標準化的量值來呈現計算資源與效能。 對服務等級的變更會改變系統可用的 DWU 數目。 接著,這項變更會調整系統的效能和成本。
為了提高效能,您可以增加數據倉儲單位的數目。 為了降低效能,請減少數據倉儲單位。 儲存體與計算成本會分別計費,因此,變更資料倉儲單位不會影響儲存體成本。
數據倉儲單位的效能是以這些數據倉儲工作負載計量為基礎:
- 標準數據倉儲查詢掃描大量數據列的速度,然後執行複雜的匯總。 此作業需要大量 I/O 和 CPU。
- 數據倉儲從 Azure 儲存體 Blob 或 Azure Data Lake 擷取數據的速度。 此作業需要大量網路和CPU。
- T-SQL 命令可以複製資料表的速度
CREATE TABLE AS SELECT
。 這項作業牽涉到從記憶體讀取數據、將其分散到設備節點,然後再次寫入記憶體。 此作業需要大量 CPU、IO 和網路。
增加 DWU:
- 線性變更系統掃描、匯總和 CTAS 語句的效能
- 增加 PolyBase 載入作業的讀取器和寫入器數目
- 增加並行查詢和並行位置的數目上限。
服務等級目標
服務等級目標 (SLO) 是決定數據倉儲成本和效能等級的延展性設定。 Gen2 的服務等級會以計算數據倉儲單位 (cDWU) 來測量,例如 DW2000c。 Gen1 服務等級會以 DWU 來測量,例如 DW2000。
服務等級目標 (SLO) 是決定數據倉儲成本和效能等級的延展性設定。 Gen2 專用 SQL 集區的服務等級會以數據倉儲單位 (DWU) 來測量,例如 DW2000c。
注意
Azure Synapse Analytics Gen2 最近新增了額外的縮放功能,以支援最低 100 cDWU 的計算層。 目前在 Gen1 上需要較低計算層的現有數據倉儲現在可以升級至目前沒有額外費用的區域中的 Gen2。 如果尚未支援您的區域,您仍然可以升級至支持的區域。 如需詳細資訊,請參閱 升級至 Gen2。
在 T-SQL 中,SERVICE_OBJECTIVE設定會決定專用 SQL 集區的服務等級和效能層級。
CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
,SERVICE_OBJECTIVE = 'DW1000c'
)
;
效能層級和數據倉儲單位
每個效能層級會針對數據倉儲單位使用稍微不同的量值單位。 當縮放單位直接轉譯為計費時,此差異會反映在發票上。
- Gen1 數據倉儲會以數據倉儲單位 (DWU) 來測量。
- Gen2 數據倉儲會以計算數據倉儲單位 (cDWU) 來測量。
DWU 和 cDWU 都支援在不需要使用數據倉儲時相應增加或減少計算,以及暫停計算。 這些作業都是隨選作業。 Gen2 會在計算節點上使用本機磁碟型快取來改善效能。 當您調整或暫停系統時,快取會失效,因此需要一段時間的快取變暖,才能達到最佳效能。
當您增加數據倉儲單位時,會以線性方式增加計算資源。 Gen2 提供最佳的查詢效能和最高規模。 Gen2 系統也會充分利用快取。
容量限制
每個 SQL Server (例如,myserver.database.windows.net) 都有資料庫 交易單位 (DTU) 配額,允許特定數目的數據倉儲單位。 如需詳細資訊,請參閱 工作負載管理容量限制。
評估您需要的數據倉儲單位數目
理想的數據倉儲單位數目取決於您的工作負載,以及您載入系統的數據量。
尋找工作負載最佳 DWU 的步驟:
- 從選取較小的 DWU 開始。
- 當您測試數據載入系統時,監視應用程式效能,並觀察相較於您觀察到的效能所選取的 DWU 數目。
- 識別尖峰活動週期的任何額外需求。 顯示活動尖峰和低谷的工作負載可能需要經常調整。
SQL 集區是一種向外延展系統,可布建大量的計算和查詢大量數據。 若要查看其調整的真正功能,特別是在較大的 DWU 上,建議您在調整數據集時調整數據集,以確保您有足夠的數據可饋送 CPU。 針對調整測試,建議您至少使用 1 TB。
注意
如果工作可以在計算節點之間分割,查詢效能只會隨著更多平行處理而增加。 如果您發現調整並未變更效能,您可能需要調整數據表設計和/或查詢。 如需查詢微調指引,請參閱 管理用戶查詢。
權限
變更數據倉儲單位需要 ALTER DATABASE 中所述的許可權。
SQL DB 參與者和 SQL Server 參與者等 Azure 內建角色可以變更 DWU 設定。
檢視目前的 DWU 設定
若要檢視目前的 DWU 設定:
- 在 Visual Studio 中開啟 SQL Server 物件總管。
- 連線 與邏輯 SQL Server 相關聯的 master 資料庫。
- 從sys.database_service_objectives動態管理檢視中選取 。 以下是範例:
SELECT db.name [Database]
, ds.edition [Edition]
, ds.service_objective [Service Objective]
FROM sys.database_service_objectives AS ds
JOIN sys.databases AS db ON ds.database_id = db.database_id
;
變更數據倉儲單位
Azure 入口網站
若要變更 DWU:
開啟 Azure 入口網站,開啟您的資料庫,然後選取 [調整]。
在 [縮放] 底下,將滑桿向左或向右移動以變更 DWU 設定。
選取 [儲存]。 確認訊息隨即出現。 選取 [ 是 ] 以確認或 取消否 。
PowerShell
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
若要變更 DWU,請使用 Set-AzSqlDatabase PowerShell Cmdlet。 下列範例會將伺服器 MyServer 上裝載的資料庫 MySQLDW 的服務等級目標設定為 DW1000。
Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"
如需詳細資訊,請參閱 適用於 Azure Synapse Analytics 的 PowerShell Cmdlet
T-SQL
透過 T-SQL,您可以檢視目前的 DWUsettings、變更設定,並檢查進度。
若要變更 DWU:
- 連線 到與伺服器相關聯的 master 資料庫。
- 使用 ALTER DATABASE TSQL 語句。 下列範例會將資料庫 MySQLDW 的服務等級目標設定為 DW1000c。
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;
REST API
若要變更 DWU,請使用 建立或更新資料庫 REST API。 下列範例會將裝載於伺服器 MyServer 之資料庫 MySQLDW 的服務等級目標設定為 DW1000c。 伺服器位於名為 ResourceGroup1 的 Azure 資源群組中。
PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8
{
"properties": {
"requestedServiceObjectiveName": DW1000
}
}
如需更多 REST API 範例,請參閱 Azure Synapse Analytics 的 REST API。
檢查 DWU 變更的狀態
DWU 變更可能需要幾分鐘的時間才能完成。 如果您要自動調整,請考慮實作邏輯,以確保某些作業已完成,然後再繼續進行另一個動作。
透過各種端點檢查資料庫狀態可讓您正確實作自動化。 入口網站會在作業和資料庫目前狀態完成時提供通知,但不允許以程式設計方式檢查狀態。
您無法使用 Azure 入口網站 檢查資料庫狀態是否有向外延展作業。
若要檢查 DWU 的狀態變更:
- 連線 到與伺服器相關聯的 master 資料庫。
- 提交下列查詢以檢查資料庫狀態。
SELECT *
FROM sys.databases
;
- 提交下列查詢以檢查作業的狀態
SELECT *
FROM sys.dm_operation_status
WHERE resource_type_desc = 'Database'
AND major_resource_id = 'MySQLDW'
;
此 DMV 會傳回專用 SQL 集區上各種管理作業的相關信息,例如作業和作業的狀態,也就是IN_PROGRESS或 COMPLETED。
調整工作流程
當您啟動調整作業時,系統會先終止所有開啟的會話,回復任何開啟的交易,以確保狀態一致。 針對調整作業,調整只會在此交易回復完成之後發生。
- 針對相應增加作業,系統會卸離所有計算節點、布建額外的計算節點,然後重新附加至儲存層。
- 針對相應減少作業,系統會卸離所有計算節點,然後將所需的節點重新附加至儲存層。