網狀架構數據倉儲效能指導方針
適用於✅:Microsoft Fabric 的倉儲
這些指導方針可協助您了解 Microsoft Fabric 中的倉儲效能。 在本文中,您會看到需要關注的指導方針和重要文章。 Microsoft Fabric 中的倉儲是 SaaS 平台,工作負載管理、並行和儲存管理等活動由平台內部進行。 除了此內部績效管理之外,您仍然可以針對設計良好的倉儲開發效能優異的查詢,以改善效能。
冷執行 (冷快取) 效能
透過本機 SSD 和記憶體快取是自動的。 查詢前 1-3 次執行的速度明顯慢於後續執行的速度。 如果遇到冷執行效能問題,可以採取下列幾個動作來解決此問題:
如果第一次執行的效能很重要,請嘗試手動建立統計資料。 請檢閱統計資料一文,進一步了解統計資料的作用,並獲得有關如何建立手動統計資料以改善查詢效能的指導。 不過,如果第一次執行的效能不重要,您可以依賴在第一個查詢中產生的自動統計資料,並繼續在後續執行中加以利用 (只要基礎資料沒有顯著變更)。
如果使用的是 Power BI,請盡可能使用 Direct Lake 模式。
用於監視效能的計量指標
目前,監視中樞不包含倉儲。 如果選擇資料倉儲,您將無法從導覽列存取監視中樞。
Fabric 系統管理員將能夠存取容量利用率和計量指標報告,以取得追蹤包含倉儲之容量利用率的最新資訊。
使用動態管理檢視 (DMV) 監視查詢執行情況
您可以在倉儲中使用動態管理檢視 (DMV) 監視連線、工作階段和要求狀態。
統計資料
倉儲使用查詢引擎為指定的 SQL 查詢建立執行計畫。 當您提交查詢時,查詢最佳化工具會嘗試列舉所有可能的計畫,並選擇最有效率的候選計畫。 為了確定哪個計畫需要最少額外負荷,引擎需要能夠評估每個運算子可以處理的工作量或資料列數。 然後,根據每個計畫的成本,它會選擇估計工作量最少的計畫。 統計資料是包含資料相關資訊的物件,可讓查詢最佳化工具估計這些成本。
您也可以在每次資料載入或資料更新之後手動更新統計資料,以確保可以建置最佳的查詢計劃。
如需詳細資訊統計資料,以及如何增強自動建立的統計資料,請參閱 Fabric 資料倉儲中的統計資料。
資料擷取指導方針
有四個方法可將資料擷取到倉儲:
- COPY (Transact-SQL)
- 資料管線
- 資料流程
- 跨倉儲擷取
若要判斷哪個選項最適合您,並檢閱一些資料擷取最佳做法,請檢閱擷取資料。
將 INSERT 陳述式分組成批次 (避免緩慢插入)
根據您的需要,使用 INSERT 陳述式一次性載入到小型資料表 (如下例所示) 可能是最好的方法。 不過,如果您一整天都得載入數千或數百萬個資料列,則單一 INSERT 可能不是最佳的。
INSERT INTO MyLookup VALUES (1, 'Type 1')
如需有關如何處理這些棘手載入案例的指導,請參閱擷取資料的最佳做法。
將交易大小降到最低
INSERT、UPDATE 和 DELETE 陳述式會在交易中執行。 當它們失敗時,必須將它們復原。 為了降低長時間復原的可能性,請盡可能減小交易大小。 將 INSERT、UPDATE 和 DELETE 陳述式分割成多個部分,即可將交易大小降至最低。 例如,如果您預期 INSERT 需要 1 小時,可以將 INSERT 分成四個部分。 然後,每次執行將會縮短為 15 分鐘。
請考慮使用 CTAS (Transact-SQL) 來寫入您想要保留在資料表中的資料,而不是使用 DELETE。 如果 CTAS 所花的時間相同,則執行 CTAS 會比較安全,因為它的交易記錄最少,而且在需要時可以快速取消。
共置用戶端應用程式和 Microsoft Fabric
如果使用的是用戶端應用程式,請確保您在靠近用戶端電腦的區域使用 Microsoft Fabric。 用戶端應用程式範例包括 Power BI Desktop、SQL Server Management Studio 及 Azure Data Studio。
利用星型結構描述資料設計
星型結構描述將資料組織成事實資料表和維度資料表。 它將高度規範化 OLTP 系統的資料去正規化,將交易資料、企業主要資料擷取至經過清潔與驗證的通用資料結構中,以盡力減少查詢時的聯結數、減少讀取的資料列數目,並加快聚合與分組處理,從而促進分析處理。
如需更多倉儲設計指導,請參閱資料倉儲中的資料表。
減小查詢結果集大小
減小查詢結果集大小可協助您避免因查詢結果數過多所造成的用戶端問題。 SQL 查詢編輯器結果集僅限於前 10,000 個資料列,以避免這個瀏覽器型 UI 中發生這些問題。 如果需要傳回的資料列數目超過 10,000 個,請使用 SQL Server Management Studio (SSMS) 或 Azure Data Studio。
選擇效能的最佳資料類型
定義資料表時,請使用支援資料的最小資料類型,因為這樣做可改善查詢效能。 這個建議對 CHAR 和 VARCHAR 資料行很重要。 如果資料行中最長的值是 25 個字元,請將您的資料行定義為 VARCHAR(25)。 避免使用較大的預設長度來定義所有字元資料行。
如果可能,請使用以整數為基礎的資料類型。 SORT、JOIN 和 GROUP BY 作業在整數上的完成速度比字元資料更快。
如需支援的資料類型和詳細資訊,請參閱資料類型。
SQL 分析端點效能
如需 SQL 分析端點效能的相關資訊和建議,請參閱 SQL 分析端點效能考量。
資料壓縮
數據壓縮會將較小的 Parquet 檔案合併成較少的較大型檔案,以優化讀取作業。 此程式也可藉由排除不可變的 Parquet 檔案,以有效率地管理已刪除的數據列。 數據壓縮程式牽涉到將數據表或數據表區段重新寫入新的 Parquet 檔案,以達到效能優化。 如需詳細資訊,請參閱 部落格:網狀架構倉儲的自動數據壓縮。
數據壓縮程序會順暢地整合到倉儲中。 執行查詢時,系統會識別可能受益於壓縮並執行必要評估的數據表。 沒有手動方式可以觸發數據壓縮。