自動化資料庫調優
適用於: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 入口網站中啟動自動微調,或使用 ALTER DATABASE T-SQL 陳述式啟用。
- Azure SQL 受控執行個體:使用 ALTER DATABASE T-SQL 陳述式啟用自動微調。
- Microsoft Fabric 中的 SQL 資料庫:預設為啟用。 如需詳細資訊,請參閱 Microsoft Fabric 中的 SQL 資料庫的效能儀錶板。
自動調整選項
Azure SQL 資料庫和 Azure SQL 受控執行個體提供的自動微調選項如下:
自動微調選項 | 說明 | 單一資料庫和集區資料庫支援 | 執行個體資料庫支援 |
---|---|---|---|
CREATE INDEX | 識別可改善工作負載效能、建立索引,以及自動驗證查詢效能已改善的索引。 建議新的索引時,系統會考慮資料庫中可用的空間。 如果估計索引加法會增加空間使用率超過 90%,以達到數據大小上限,則不會產生索引建議。 一旦系統識別低使用率的期間並開始建立索引,即使資源使用率意外增加,系統也不會暫停或取消此作業。 如果索引建立失敗,將會在未來低使用率期間時重試。 叢集索引或堆積超過 10 GB 的資料表不提供索引建議。 | 是 | 否 |
DROP INDEX | 刪除過去 90 天未使用及重複的索引。 永遠不會卸除唯一索引,包括支持主鍵和唯一約束的索引。 當工作負載中有索引提示的查詢或工作負載執行分割切換時,可以自動停用此選項。 在進階和商務關鍵性服務層級上,此選項永遠不會卸除未使用的索引,但將會卸除重複的索引 (如果有的話)。 | 是 | 否 |
FORCE LAST GOOD PLAN (自動更正計劃) | 可識別使用較前一個良好計畫更為緩慢執行計畫的 Azure SQL 查詢,並強制查詢以使用最後一個已知的良好計畫來取代迴歸計畫。 | 是 | 是 |
Azure SQL Database 的自動調整
針對 Azure SQL 資料庫進行自動微調會使用 CREATE INDEX、DROP INDEX 及 FORCE_LAST_GOOD_PLAN 資料庫建議程式的建議,將您的資料庫效能最佳化。 如需詳細資訊,請參閱 在 Azure 入口網站、PowerShell和 REST 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 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 資料庫上的高 CPU 使用率