使用 Azure 入口網站中的自動調整來監視查詢並改善工作負載效能
適用於:Azure SQL 資料庫Azure SQL 受控執行個體
Azure SQL Database 會自動管理資料服務,其會不斷地監視您的查詢,並識別您為改善工作負載效能可以執行的動作。 您可以檢閱建議並手動套用建議,或讓 Azure SQL Database 自動套用更正動作。 這稱為 自動調整模式。
可以透過下列方式在伺服器或資料庫層級啟用自動調整:
- Azure 入口網站
- REST API 呼叫
- T-SQL 命令
注意
針對 Azure SQL 受控實例,支援的選項 FORCE_LAST_GOOD_PLAN
只能透過 T-SQL來設定。 本文所述的 Azure 入口網站型設定和自動索引調整選項不適用於 Azure SQL 受控實例。
目前不支援透過 Azure Resource Manager (ARM) 範本設定自動調整選項。
在伺服器上啟用自動調整
在伺服器層級上,您可以選擇從「Azure 預設值」繼承自動調整組態,或不要繼承設定。 Azure 預設為 FORCE_LAST_GOOD_PLAN
啟用,CREATE_INDEX
停用,以及 DROP_INDEX
停用。
Azure 入口網站
若要在 Azure SQL Database 中的伺服器上啟用自動調整,請導覽至 Azure 入口網站中的伺服器,然後選取功能表中的 [自動調整]。
依序選取您想要啟用的自動調整以及 [套用]。
伺服器上的自動調整選項會套用到此伺服器上的所有資料庫。 根據預設,所有資料庫會都繼承其父伺服器的組態,但這可加以覆寫並針對每個資料庫個別加以指定。
REST API
若要深入了解如何使用 REST API 在伺服器上啟用自動調整,請參閱伺服器自動調整的 UPDATE 和 GET HTTP 方法。
目前不支援透過 Azure Resource Manager (ARM) 範本設定自動調整選項。
在個別的資料庫上啟用自動調整
Azure SQL 資料庫可讓您個別指定每個資料庫的自動調整設定。 在資料庫層級上,您可以選擇繼承父伺服器「Azure 預設值」的自動調整設定,或不繼承設定。 這些預設值如下:
-
FORCE_LAST_GOOD_PLAN
已啟用 -
CREATE_INDEX
已停用 -
DROP_INDEX
已停用
提示
一般建議是在伺服器層級管理自動調整設定,以便在每一個資料庫上自動套用相同的組態設定。 只有在您要求該資料庫的設定不同於繼承自相同伺服器的其他設定時,設定自動調整個別的資料庫。
Azure 入口網站
若要在單一資料庫上啟用自動調整,請導覽至 Azure 入口網站中的資料庫,然後選取 [自動調整]。
您可以針對每個資料庫分開設定個別的自動調整設定。 您可以手動設定個別的自動調整選項,或指定選項從伺服器繼承其設定。
選擇所需的組態之後,請點選 [套用]。
REST API
若要深入了解如何使用 REST API 在單一資料庫上啟用自動調整,請參閱 Azure SQL 資料庫自動調整的 UPDATE 和 GET HTTP 方法。
目前不支援透過 Azure Resource Manager (ARM) 範本設定自動調整選項。
T-SQL
若要透過 T-SQL 在單一資料庫上啟用自動調整,請連線到該資料庫並執行下列查詢:
ALTER DATABASE current SET AUTOMATIC_TUNING = AUTO | INHERIT | CUSTOM
將自動調整設定為 AUTO
會套用 Azure 預設值。 將它設定為 INHERIT
時,會繼承自父伺服器的自動調整組態。 如果您選擇 CUSTOM
,則必須手動設定自動調整。
若要透過 T-SQL 設定個別的自動調整選項,請連線到資料庫並執行下列查詢:
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (
FORCE_LAST_GOOD_PLAN = ON,
CREATE_INDEX = ON,
DROP_INDEX = OFF
);
將個別微調選項設定為 ON 會覆寫資料庫繼承的任何設定,並啟用微調選項。 將它設定為 OFF
會覆寫資料庫所繼承的任何設定,並停用微調選項。 指定 DEFAULT
的自動微調選項會繼承伺服器層級設定中的自動調整組態。
重要
針對 主動地理複寫,必須僅在主資料庫上設定自動調整。 自動套用的調整動作,例如建立或刪除索引,會自動複製到異地次要資料庫。 嘗試在唯讀副本上透過 T-SQL 啟用自動調整會導致失敗,因為不支援在唯讀副本上設定不同的調整設定。
若要深入瞭解設定自動調整的 T-SQL 選項,請參閱 ALTER DATABASE SET 選項。
疑難排解
自動建議管理已停用
如果您看到自動化推薦管理被停用或被系統停用的錯誤訊息,最常見的原因是:
- 查詢存放區未啟用,或
- 查詢存放區對指定的資料庫處於唯讀模式,或
- 查詢存放區因為配置的儲存體空間耗盡而停止執行。
您可以考慮下列步驟來修正此問題:
清除查詢存放區,或使用 T-SQL 將資料保留期間修改為「自動」,或增加查詢存放區大小上限。 請參閱如何為查詢存放區設定建議的保留和擷取原則。
使用 SQL Server Management Studio (SSMS)並遵循下列步驟:
- 線上到 Azure SQL 資料庫。
- 以滑鼠右鍵點選資料庫。
- 移至 [屬性] 並選取 [查詢存放區]。
- 將 工作模式 變更為 讀寫。
- 將 存放區擷取模式 變更為 自動。
- 將 大小清除模式 變更為 自動。
權限
針對 Azure SQL Database,若要在 Azure 入口網站管理自動調整,或使用 PowerShell 或 REST API,則需要擁有內建的 Azure 角色型存取控制 (RBAC) 角色的成員資格。
若要管理自動調整,要授與使用者的最低必要權限是 SQL Database 參與者角色的成員資格。 您也可以考量使用較高的權限角色,例如 SQL Server 參與者、參與者和擁有者。
如需管理自動調整所需的 T-SQL 許可權,請參閱 之於 ALTER DATABASE
的許可權。
設定自動調整電子郵件通知
若要接收自動調整所提出建議的自動電子郵件通知,請參閱自動調整電子郵件通知指南。
相關內容
- Azure SQL Database 和 Azure SQL 受控實例中的自動調整
- 適用於 Azure SQL Database 的 Database Advisor 效能建議
- 適用於 Azure SQL Database 的查詢效能深入解析