共用方式為


在 Azure SQL 資料庫和 Azure SQL 受控執行個體中進行自動微調

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

Azure SQL 資料庫和 Azure SQL 受控執行個體自動微調可透過以 AI 和機器學習為基礎的持續效能微調,來提供最佳效能與穩定的工作負載。

自動調整是完全受控的智慧效能服務,它能使用內建的智慧機制來持續監視在資料庫上執行的查詢,並且自動改善查詢的效能。 這會透過動態調整資料庫以適應不斷變動的工作負載,並套用微調建議來達成。 自動調整能透過 AI 從 Azure 上的所有資料庫進行水平學習,並能動態地改善其調整動作。 資料庫在開啟自動微調的情況下執行得越久,就能執行得越好。

Azure SQL 資料庫和 Azure SQL 受控執行個體自動微調可能是最具影響力的功能之一,讓您可以啟用來提供穩定且最佳效能的資料庫工作負載。

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

自動微調可以為您做什麼

  • 資料庫的自動效能微調
  • 自動驗證效能提升
  • 自動復原與自我修正
  • 調整歷程記錄
  • 用於手動部署的微調動作 Transact-SQL (T-SQL) 指令碼
  • 以數十萬個資料庫向外延展的功能
  • 為 DevOps 資源及擁有權總成本帶來正面影響

安全、可靠且經過實證

套用到資料庫的調整作業,對於您最密集工作負載的效能完全安全。 系統已經精心設計成不會干擾使用者工作負載。 自動調整建議只會在 CPU、資料 IO 和記錄 IO 低使用率的時段套用。 系統也可以暫時地停用自動調整作業,以保護工作負載效能。 在此類狀況下,Azure 入口網站和 sys.database_automatic_tuning_options DMV 會顯示「被系統停用」訊息。 自動調整是設計來為使用者工作負載提供最高的資源優先順序。

自動調整是成熟的機制,且已在數百萬個於 Azure 上執行的資料庫上達到完美。 已套用的自動調整作業都會進行自動驗證,以確保對工作負載效能有顯著的正面改進。 如果沒有改善,或不太可能發生效能回歸,則會自動還原自動調整所做的變更。 透過已記錄的調整歷程記錄,使用者可清楚查看對 Azure SQL Database 中各資料庫所做出的調整改進。

自動調整的運作方式

啟用自動微調

自動調整選項

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

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

Azure SQL Database 的自動調整

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

您可以使用 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] 診斷設定,串流至數種類型的目的地。