在 Azure SQL Database 和 Azure SQL 受控執行個體中進行自動微調
適用於:
Azure SQL Database
Azure SQL 受控執行個體
Azure SQL Database 和 Azure SQL 受控執行個體自動微調可透過以 AI 和機器學習為基礎的持續效能微調,來提供最佳效能與穩定的工作負載。
自動調整是完全受控的智慧效能服務,它能使用內建的智慧機制來持續監視在資料庫上執行的查詢,並且自動改善查詢的效能。 這會透過動態調整資料庫以適應不斷變動的工作負載,並套用微調建議來達成。 自動調整能透過 AI 從 Azure 上的所有資料庫進行水平學習,並能動態地改善其調整動作。 資料庫在開啟自動微調的情況下執行得越久,就能執行得越好。
Azure SQL Database 和 Azure SQL 受控執行個體自動微調可能是最重要功能之一,讓您可以啟用來提供穩定且最佳效能的資料庫工作負載。
自動微調可以為您做什麼
- 資料庫的自動效能微調
- 自動驗證效能提升
- 自動復原與自我修正
- 調整歷程記錄
- 用於手動部署的微調動作 Transact-SQL (T-SQL) 指令碼
- 主動式工作負載效能監視
- 以數十萬個資料庫向外延展的功能
- 為 DevOps 資源及擁有權總成本帶來正面影響
安全、可靠且經過實證
在 Azure SQL Database 中套用到資料庫的微調作業,即便是用於最密集的工作負載,對其效能也是完全安全的。 系統已經精心設計成不會干擾使用者工作負載。 自動調整建議只會在低使用率的時段套用。 系統也可以暫時地停用自動調整作業,以保護工作負載效能。 在這種情況下,Azure 入口網站中將顯示 [被系統停用] 的訊息。 自動調整會將工作負載考慮為具有最高資源優先順序。
自動調整是成熟的機制,且已在數百萬個於 Azure 上執行的資料庫上達到完美。 已套用的自動調整作業都會進行自動驗證,以確保對工作負載效能有正面的改進。 系統會動態地偵測迴歸的效能建議,並迅速地做出還原。 透過已記錄的微調歷程記錄,即可在 Azure SQL Database 和 Azure SQL 受控執行個體中明確追蹤對每個資料庫所做的微調改進。

Azure SQL Database 自動微調會與資料庫引擎中的 SQL Server 自動微調功能共用其核心邏輯。 如需內建智慧機制的其他技術資訊,請參閱 SQL Server 自動調整 \(英文\)。
啟用自動微調
- 您可以在 Azure 入口網站中針對 Azure SQL Database 啟動自動微調,或使用 ALTER DATABASE T-SQL 陳述式來啟用。
- 您可以使用 ALTER DATABASE T-SQL 陳述式,為 Azure SQL 受控執行個體啟用自動微調。
自動調整選項
Azure SQL Database 和 Azure SQL 受控執行個體提供的自動微調選項如下:
| 自動微調選項 | 單一資料庫和集區資料庫支援 | 執行個體資料庫支援 |
|---|---|---|
| CREATE INDEX:識別可能改善工作負載的效能、建立索引,並自動驗證已改善查詢效能的索引。 | 是 | 否 |
| DROP INDEX:卸除未使用 (過去 90 天內) 和重複的索引。 永遠不會卸除唯一索引,包括支援主索引鍵和唯一限制式的索引。 當工作負載中出現具有索引提示的查詢,或工作負載會執行資料分割切換時,此選項可能會自動停用。 在進階和商務關鍵性服務層級上,此選項永遠不會卸除未使用的索引,但將會卸除重複的索引 (如果有的話)。 | 是 | 否 |
| FORCE LAST GOOD PLAN (自動計畫更正):使用比前一個良好計畫更緩慢的執行計畫來識別 Azure SQL 查詢,以及使用最後一個已知的良好計畫來取代迴歸計畫的查詢。 | 是 | 是 |
針對 SQL Database 進行自動微調
針對 Azure SQL Database 進行自動微調會使用 CREATE INDEX、DROP INDEX 及 FORCE LAST GOOD PLAN 資料庫建議程式的建議,將您的資料庫效能最佳化。 如需詳細資訊,請參閱 PowerShell、REST API 及 Azure 入口網站中資料庫建議程式的建議。
您可以使用 Azure 入口網站來手動套用微調建議,或是讓自動微調獨立自主地為您套用微調建議。 讓系統為您自動套用調整建議的好處,就是系統會自動驗證工作負載效能是否有正面的改善,或者如果未偵測到明顯的效能改善,系統會自動還原調整建議。 請注意,針對受到沒有經常執行之調整建議所影響的查詢,其驗證階段根據設計可能需要最多 72 小時才能完成。
如果您透過 T-SQL 套用微調建議,則無法使用自動效能驗證和反轉機制。 以這種方式套用的建議將維持作用中狀態,並顯示於微調建議清單中 24-48 小時,然後系統會自動加以撤銷。 如果您想要儘速移除建議,可以從 Azure 入口網站加以捨棄。
自動微調選項可以針對每個資料庫個別啟用或停用,或者,可以在伺服器層級上加以設定,並在每個從伺服器繼承設定的資料庫上套用。 伺服器可以繼承適用於自動微調設定的 Azure 預設值。 Azure 預設值此時會設為已啟用 FORCE_LAST_GOOD_PLAN 和 CREATE_INDEX,且已停用 DROP_INDEX。
重要
從 2020 年 3 月起,適用於自動微調的 Azure 預設值變更將會生效,如下所示:
- 新的 Azure 預設值將是:FORCE_LAST_GOOD_PLAN = 已啟用、CREATE_INDEX = 已停用,以及 DROP_INDEX = 已停用。
- 未設定自動微調喜好設定的現有伺服器,將自動設定為繼承新的 Azure 預設值。 這適用於目前具有伺服器設定,以在未定義狀態下進行自動微調的所有客戶。
- 新建立的伺服器將自動設定為繼承新的 Azure 預設值 (與先前在建立新伺服器時自動微調設定處於未定義狀態不同)。
在伺服器上設定自動微調選項,並繼承屬於父代伺服器的資料庫設定,是設定自動微調的建議方法,因為這可簡化大量資料庫的自動微調選項管理。
若要了解如何針對自動微調建議建置電子郵件通知,請參閱自動微調的電子郵件通知。
針對 Azure SQL 受控執行個體進行自動微調
SQL 受控執行個體的自動微調僅支援強制執行最後一個良好計劃。 如需透過 T-SQL 設定自動微調選項的詳細資訊,請參閱自動微調導入了自動計劃修正和自動計劃修正。
後續步驟
- 參閱人工智慧微調 Azure SQL Database (英文) 的部落格文章。
- 於在 Microsoft Azure SQL Database 中自動編製數百萬個資料庫的索引 (英文) 中,了解自動微調本質上如何運作。
- 了解自動微調如何主動協助您診斷和疑難排解 Azure SQL Database 上的高 CPU