共用方式為


Azure Synapse Analytics 無伺服器 SQL 集區的效能微調指引

適用於:Azure Synapse Analytics

本文可協助您增強 Azure Synapse Analytics 無伺服器 SQL 集區的效能。

如需如何達到最佳效能並防止與 Azure Synapse Analytics 無伺服器 SQL 集區上資源限制相關的失敗,請參閱後續幾節。

最佳做法和疑難解答指南

下列文章中的資訊和策略可協助您取得無伺服器 SQL 集區的最佳效能。 建議您使用這些文章來檢閱使用案例,並針對常見問題進行疑難解答。

瞭解在無伺服器 SQL 集區上調整規模

無伺服器 SQL 集區不需要手動選取正確的大小。 系統會根據您的查詢需求自動調整大小,進而管理基礎結構,併為您的解決方案選取正確的大小。

Delta Lake 檔案的效能微調指引

如需 Delta Lake 檔案效能微調的詳細資訊,請參閱下列資源:

CSV 檔案的效能微調指導

當您在無伺服器 SQL 集區上查詢 CSV 檔案時,最重要的工作是確保高效能是在外部數據表上建立統計數據。 雖然統計數據會在 Parquet 和 CSV 檔案上自動建立,並使用 來存取 OPENQUERY(),但使用外部數據表讀取 CSV 檔案時,需要您手動建立統計數據。

如需在無伺服器 SQL 集區中查詢 CSV 檔案中統計數據角色的詳細資訊,請參閱下列文章:

使用 Power BI 和其他報告工具的建議

當您使用 Power BI 和其他報告工具時,建議您使用下列最佳做法:

  • 一律檢查您的租用戶位置。
  • 設定快取以提供更理想的使用者體驗。
  • 避免將數百萬筆記錄傳回至儀表板。
  • 使用排程的重新整理來避免平行查詢執行,以清空 SQL 無伺服器集區資源。
  • 使用Spark預先匯總一般分析查詢。 這個「寫入一次/讀取許多」方法可以避免持續執行的繁重查詢。
  • 對於不同數據存放區之間的聯結:使用篩選來避免跨 Azure 基礎結構移動的巨量數據磁碟區。
  • 針對字元數據類型使用 Latin1_General_100_BIN2_UTF8 定序。 當工具從記憶體讀取時,此定序可避免將所有資料從記憶體傳輸至無伺服器 SQL 集區。
  • 如果您要轉換或將資料轉換成charvarchar或執行查詢時,請使用最理想的大小。 可能的話,請避免使用 VARCHAR(MAX)
  • 自動推斷會將數據類型轉換成可能不是最佳格式。 使用 WITH 子句可將資料類型最佳化。
  • Azure Synapse SQL 無伺服器集區資源有限制。 同時執行查詢會耗用資源。 當多個重新整理平行發生時,通常會看到Power BI (PBI) 儀錶板達到資源限制。 排程的重新整理和負載測試有助於避免這個問題。 此外,使用多個 Azure Synapse 工作區可以解決更高的並行需求。
  • 您可以執行查詢 sys.columns 或使用 sp_describe_first_result_set ,並在 select top 0 from <view> 建立檢視之後檢查資料類型。 這種方法比使用 SELECT * FROM...更快且成本更低。
  • 您可以使用陳述式產生器,自動為您的查詢建立最佳資料行格式。
  • 使用函式 OPENJSON 將巢狀 JSON 數據公開為數據行。 但是,如果您也使用 AS JSON 命令,則資料行類型必須是 NVARCHAR(MAX)。 這種方法不適合用於效能。 最佳選項是使用 WITH 子句,將巢狀陣列公開為資料行。
  • Cosmos DB 交易式存放區分割區索引鍵不會用於分析存放區中。 在 Azure Synapse Link 中,您現在可以建立交易資料的模型,以將資料擷取和資料點讀取最佳化。

額外的指引和最佳做法

類別 建議的動作或文件
資料探索 Azure 儲存體
在 Azure 儲存體上儲存查詢結果
邏輯資料倉儲
OPENROWSET 和外部資料表 OPENROWSET 函式
外部資料表
預存程序
檢視
資料轉換
無伺服器 SQL 集區中的可用 T-SQL 功能 Azure Synapse 集區中的 T-SQL 功能

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。