在 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 入口網站中啟動自動微調,或使用 ALTER DATABASE T-SQL 陳述式啟用。
- Azure SQL 受控執行個體:使用 ALTER DATABASE T-SQL 陳述式啟用自動微調。
- Microsoft Fabric 中的 SQL 資料庫:預設為啟用。 如需詳細資訊,請參閱 Microsoft Fabric 中的 SQL 資料庫的效能儀錶板。
自動調整選項
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 INDEX、DROP INDEX 及 FORCE_LAST_GOOD_PLAN 資料庫建議程式的建議,將您的資料庫效能最佳化。 如需詳細資訊,請參閱 PowerShell、REST API 及 Azure 入口網站中資料庫建議程式的建議。
您可以使用 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 INDEX 和 DROP INDEX 自動調整選項,請使用下列 T-SQL。
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (CREATE_INDEX = ON, DROP_INDEX = ON);
自動調整歷程記錄
對於 Azure SQL 資料庫,自動調整所做的變更歷程記錄會保留 21 天。 您可以在資料庫的 [效能建議] 頁面上 Azure 入口網站檢視,或使用 PowerShell 搭配Get-AzSqlDatabaseRecommendedAction Cmdlet。 針對較長的保留期,歷程記錄資料也可以藉由啟用 [AutomaticTuning] 診斷設定,串流至數種類型的目的地。
相關內容
- 參閱人工智慧微調 Azure SQL 資料庫(英文) 的部落格文章。
- 於在 Microsoft Azure SQL 資料庫中自動編製數百萬個資料庫的索引 (英文) 中,了解自動微調本質上如何運作。
- 了解自動微調如何主動協助您診斷和疑難排解 Azure SQL 資料庫上的高 CPU