管理專用 SQL 集區的計算資源
本文說明如何在 Azure Synapse Analytics 中管理專用 SQL 集區(先前稱為 SQL DW)的計算資源。 您可以暫停專用 SQL 集區來降低成本,或調整專用 SQL 集區以符合效能需求。
什麼是計算管理?
專用 SQL 集區的結構會分隔儲存體和計算,所以能獨立進行調整。 因此,您可以調整計算規模以符合與資料儲存體無關的效能需求。 您也可以暫停和繼續計算資源。
此架構的自然後果是 計算和記憶體的定價 是分開的。 如果暫時不需使用專用 SQL 集區,您可以暫停計算以節省計算成本。
調整計算
您可以調整 專用 SQL 集區的數據倉儲單位 (DWU) 設定,以相應放大或相應縮小計算。 當您新增更多 DWU 時,載入和查詢效能可能會以線性方式增加。
如需向外延展步驟,請參閱 Azure 入口網站、PowerShell 或 T-SQL 的快速入門。 您也可以使用 REST API 執行向外延展作業。
若要執行調整作業,專用 SQL 集區會先終止所有傳入查詢,然後回復交易,以確保一致的狀態。 只有在交易復原完成後,才會發生調整。 針對調整作業,系統會將儲存層與計算節點中斷連結、新增計算節點,然後將儲存層重新附加至計算層。
每個專用 SQL 集區會儲存為 60 個散發套件,平均散發至計算節點。 新增更多計算節點可增加計算能力。 隨著計算節點數目增加,每個計算節點的散發數目會減少,為您的查詢提供更多計算能力。 同樣地,減少 DWU 會減少計算節點的數目,以減少查詢的計算資源。
下表顯示當 DWU 變更時,每個計算節點的散發數目如何變更。 DW30000c 提供 60 個計算節點,並達到比 DW100c 更高的查詢效能。
資料倉儲單位 | 計算節點的數量 # | 每個節點的散發數量 # |
---|---|---|
DW100c | 1 | 60 |
DW200c | 1 | 60 |
DW300c | 1 | 60 |
DW400c | 1 | 60 |
DW500c | 1 | 60 |
DW1000c | 2 | 30 |
DW1500c | 3 | 20 |
DW2000c | 4 | 15 |
DW2500c | 5 | 12 |
DW3000c | 6 | 10 |
DW5000c | 10 | 6 |
DW6000c | 12 | 5 |
DW7500c | 15 | 4 |
DW10000c | 20 | 3 |
DW15000c | 30 | 2 |
DW30000c | 60 | 1 |
尋找正確的數據倉儲單位大小
若要查看相應放大的效能優點,特別是針對較大的數據倉儲單位,您想要使用至少 1 TB 的數據集。 若要尋找專用 SQL 集區的最佳 DWU 數目,請嘗試相應增加和減少。 載入數據之後,執行一些具有不同 DWU 數目的查詢。 由於擴縮速度很快,因此您可以在一小時內嘗試各種效能等級。
尋找最佳 DWU 數目的建議:
- 針對開發中的專用 SQL 集區,請從選取較少的 DWU 開始。 您不妨從 DW400c 或 DW200c 開始著手。
- 監視應用程式效能,觀察相較於您觀察到的效能所選取的 DWU 數目。
- 假設線性刻度,並判斷您需要增加或減少 DWU 多少。
- 繼續進行調整,直到達到滿足商務需求的最佳效能等級。
向外延展的時機
相應放大 DWU 會影響效能的這些層面:
- 以線性方式改善系統掃描、匯總和 CTAS 語句的效能
- 增加載入數據的讀取器和寫入器數目
- 並行查詢和並行位置的數目上限
何時相應放大 DWU 的建議:
- 執行繁重的數據載入或轉換作業之前,請先相應放大,讓數據更快速地提供。
- 在尖峰上班時間,相應放大以容納更多並行查詢。
如果向外延展無法改善效能,該怎麼辦?
新增 DWU 會增加平行處理原則。 如果工作在計算節點之間平均分割,則額外的平行處理原則可改善查詢效能。 如果相應放大不會變更您的效能,有一些原因可能會發生這種情況。 您的數據可能會因散發而扭曲,或查詢可能會導入大量數據移動。 若要調查查詢效能問題,請參閱 效能疑難解答。
暫停與繼續計算
暫停計算會導致儲存層與計算節點中斷連結。 計算資源會從您的帳戶釋放。 計算暫停時,您不需支付計算費用。 繼續計算會將記憶體重新附加至計算節點,並繼續計算費用。
當您暫停專用 SQL 集區時:
- 計算和記憶體資源會傳回數據中心內可用資源的集區。
- 暫停期間,數據倉儲單位成本為零。
- 數據記憶體不會受到影響,您的數據會保持不變。
- 所有執行中或已排入佇列的作業都會取消。
- DMV 計數器會重設。
當您繼續專用 SQL 集區時:
- 專用 SQL 集區會取得 DWU 設定的計算和記憶體資源。
- 繼續計算 DWU 的費用。
- 您的數據會變成可用。
- 在專用 SQL 集區上線之後,您必須重新啟動工作負載查詢。
如果您一律想要可存取專用 SQL 集區,請考慮將其縮減為最小大小,而不是暫停。
如需暫停和繼續步驟,請參閱 Azure 入口網站 或 PowerShell 的快速入門。 您也可以使用 暫停 REST API 或 繼續 REST API。
暫停或調整之前清空交易
我們建議在起始暫停或調整規模作業之前,讓現有的交易先完成。
當您暫停或調整專用 SQL 集區時,當您起始暫停或調整要求時,查詢會在幕後取消。 取消簡單的 SELECT 查詢是快速作業,幾乎不會影響暫停或調整實例所需的時間。 不過,修改數據或數據結構的交易式查詢可能無法快速停止。 根據定義,交易式查詢必須完整完成,或回復其變更。
復原交易式查詢完成的工作可能需要比查詢所套用的原始變更長甚至更長的時間。 例如,如果您取消刪除數據列的查詢,而且已經執行了一小時,系統可能需要一小時的時間才能插入已刪除的數據列。 如果您在交易進行時執行暫停或調整,暫停或調整可能需要很長的時間,因為暫停和調整必須等待復原完成,才能繼續。
自動化計算管理
若要自動化計算管理作業,請參閱 使用 Azure Functions 來管理專用 SQL 集區的計算資源。
相應放大、暫停和繼續作業可能需要幾分鐘的時間才能完成。 如果您要自動調整、暫停或繼續,建議您實作邏輯,以確保某些作業已完成,再繼續進行另一個動作。 透過各種端點檢查專用SQL集區狀態,可讓您正確實作這類作業的自動化。
若要檢查專用 SQL 集區狀態,請參閱 PowerShell 或 T-SQL 的快速入門。 您也可以使用 REST API 檢查專用 SQL 集區狀態。
權限
調整專用 SQL 集區需要 ALTER DATABASE 中所述的許可權。 暫停和繼續需要 SQL DB 參與者 角色,特別是 Microsoft.Sql/servers/databases/action。