共用方式為


自動化資料庫調優

適用於:Azure SQL 資料庫 Azure SQL 受控執行個體Fabric 中的 SQL 資料庫

自動調整可透過根據 AI 和機器學習的持續效能微調,提供尖峰效能和穩定的工作負載。

自動調整是完全管理的智慧型效能服務,可以持續監控在資料庫上執行的查詢,並自動改善效能。 這會透過動態調整資料庫以適應不斷變動的工作負載,並套用微調建議來達成。

自動調整能透過 AI 從 Azure 上的所有資料庫進行水平學習,並能動態地改善其調整動作。

安全、可靠且經過實證

套用到資料庫的優化操作,對於您最密集工作負載的效能完全不會影響安全。 系統已經精心設計成不會干擾使用者工作負載。

顯示自動調整運作方式的圖表。

自動調整建議只會在 CPU、資料 IO 和記錄 IO 低使用率的時段套用。 系統也可以暫時地停用自動調整作業,以保護工作負載效能。 在這種情況下,「由系統停用」訊息會顯示在 Azure 入口網站和 sys.database_automatic_tuning_options 動態管理檢視中。 自動調整是設計來為使用者工作負載提供最高的資源優先順序。

自動調整是成熟的機制,且已在數百萬個於 Azure 上執行的資料庫上達到完美。 自動化的微調作業會自動驗證,以確保工作負載效能有明顯的正面改善。 如果沒有改善,或在不太可能發生的情況下效能退步,則會立即還原自動調整所做的調整。 透過已記錄的調整歷程記錄,使用者可清楚查看對 Azure SQL Database 中各資料庫所做出的調整改進。 資料庫在啟用自動調整時執行的時間越長,就越可能受益。

Azure SQL 自動微調會與資料庫引擎中的 SQL Server 自動微調功能共用其核心邏輯。 如需內建智慧機制的其他技術資訊,請參閱 SQL Server 自動調整 \(英文\)。

提示

如需詳細資訊,請參閱 部落格:人工智慧調整 Azure SQL Database

閱讀 Microsoft Research 的 PDF,了解 Microsoft Azure SQL Database 如何自動為數百萬個資料庫編製索引

自動微調可以為您做什麼

資料庫的自動化效能調整包括:

  • 自動驗證效能提升
  • 自動回復與自我修正
  • 調整歷史
  • 用於手動部署的微調動作 Transact-SQL (T-SQL) 指令碼
  • 成千上萬個資料庫的向外擴充能力
  • 為 DevOps 資源及擁有權總成本帶來正面影響

啟用自動微調

自動調整選項

Azure SQL 資料庫和 Azure SQL 受控執行個體提供的自動微調選項如下:

自動微調選項 說明 單一資料庫和集區資料庫支援 執行個體資料庫支援
CREATE INDEX 識別可改善工作負載效能、建立索引,以及自動驗證查詢效能已改善的索引。 建議新的索引時,系統會考慮資料庫中可用的空間。 如果估計索引加法會增加空間使用率超過 90%,以達到數據大小上限,則不會產生索引建議。 一旦系統識別低使用率的期間並開始建立索引,即使資源使用率意外增加,系統也不會暫停或取消此作業。 如果索引建立失敗,將會在未來低使用率期間時重試。 叢集索引或堆積超過 10 GB 的資料表不提供索引建議。
DROP INDEX 刪除過去 90 天未使用及重複的索引。 永遠不會卸除唯一索引,包括支持主鍵和唯一約束的索引。 當工作負載中有索引提示的查詢或工作負載執行分割切換時,可以自動停用此選項。 在進階和商務關鍵性服務層級上,此選項永遠不會卸除未使用的索引,但將會卸除重複的索引 (如果有的話)。
FORCE LAST GOOD PLAN (自動更正計劃) 可識別使用較前一個良好計畫更為緩慢執行計畫的 Azure SQL 查詢,並強制查詢以使用最後一個已知的良好計畫來取代迴歸計畫。

Azure SQL Database 的自動調整

針對 Azure SQL 資料庫進行自動微調會使用 CREATE INDEXDROP INDEXFORCE_LAST_GOOD_PLAN 資料庫建議程式的建議,將您的資料庫效能最佳化。 如需詳細資訊,請參閱 在 Azure 入口網站PowerShellREST API中尋找及套用效能建議。

您可以使用 Azure 入口網站來手動套用微調建議,或是讓自動微調獨立自主地為您套用微調建議。 讓系統自動為您套用微調建議的優點是,它會自動驗證工作負載效能是否存在正面的提升。如果未偵測到顯著的效能改善或效能下降,系統會自動還原所做的變更。 根據查詢執行頻率,驗證程式可能需要 30 分鐘到 72 小時的時間,而較不常執行的查詢需要較長的時間。 如果在驗證期間的任何時刻偵測到回歸,則會立即還原變更。

重要

如果您透過 T-SQL 套用微調建議,則無法使用自動效能驗證和反轉機制。 以這種方式套用的建議將維持作用中狀態,並顯示於微調建議清單中 24-48 小時,然後系統會自動加以撤銷。 如果您想要更早移除建議,可以從 Azure 入口網站移除它。

自動微調選項可以針對每個資料庫個別啟用或停用,或者,可以在伺服器層級上加以設定,並在每個從伺服器繼承設定的資料庫上套用。 依預設,新伺服器可以繼承 Azure 的自動調整設定預設值。 Azure 預設值為已啟用 FORCE_LAST_GOOD_PLAN,並已停用 CREATE_INDEX 和 DROP_INDEX。

在伺服器上設定自動微調選項,並繼承屬於父代伺服器的資料庫設定,是設定自動微調的建議方法。 這可簡化大量資料庫的自動調整選項管理。

若要了解如何針對自動微調建議建置電子郵件通知,請參閱自動微調的電子郵件通知

針對 Azure SQL 受控執行個體進行自動微調

SQL 受控執行個體的自動微調僅支援強制執行最後一個良好計劃。 如需透過 T-SQL 設定自動微調選項的詳細資訊,請參閱自動微調導入了自動計劃修正自動計劃修正

Microsoft Fabric 中 SQL 資料庫的自動調整

CREATE INDEX自動調整選項會在 Microsoft Fabric 的 SQL 資料庫中自動啟用。

啟用範例

如需詳細資訊,請參閱 ALTER DATABASE SET 選項

若要從父邏輯伺服器繼承預設組態,請使用下列 T-SQL。 在 Azure 入口網站中,這會反映「繼承自:伺服器」的選項。

ALTER DATABASE CURRENT 
SET AUTOMATIC_TUNING = INHERIT;

若要啟用 CREATE INDEXDROP INDEX 自動調整選項,請使用下列 T-SQL。

ALTER DATABASE CURRENT 
SET AUTOMATIC_TUNING 
(CREATE_INDEX = ON, DROP_INDEX = ON);

自動調校歷程記錄

對於 Azure SQL 資料庫,自動調整所做的變更歷程記錄會保留 21 天。 您可以在 Azure 入口網站中的資料庫 [效能建議] 頁面上檢視,或使用 PowerShell 搭配 Get-AzSqlDatabaseRecommendedAction cmdlet。 針對較長的保留期,歷程記錄資料也可以藉由啟用 AutomaticTuning診斷設定,串流至數種類型的目標地點。