本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
RDS for Oracle 中的即時 SQL 計劃管理
從 Oracle Database 26ai (26.0.0.0) 開始,Amazon RDS for Oracle 支援即時 SQL 計劃管理。此功能可透過偵測執行計畫變更、針對先前的計畫進行評估,以及視需要從 SQL 計畫基準選取效能最佳的計畫,來防止 SQL 效能迴歸。此程序是透明的,不需要手動介入。
若要在 RDS for Oracle 上啟用即時 SQL 計劃管理,您可以使用 DBMS_SPM.CONFIGURE開啟自動演進任務。然後,您可以使用 rdsadmin.rdsadmin_spm_util套件來設定 SYS 擁有的任務參數。
概觀
當 Oracle 最佳化工具選擇比先前計劃更差的新執行計劃時,就會發生 SQL 效能迴歸。即時 SQL 計劃管理可自動偵測和預防這些迴歸。
啟用即時 SQL 計劃管理時,資料庫會執行下列動作:
-
即時偵測執行計畫變更。
-
針對先前的計劃,評估新計劃的效能。
-
自動建立或更新 SQL 計劃基準。
-
選取效能最佳的計劃以防止迴歸。
要求
若要使用即時 SQL 計劃管理,您的資料庫執行個體必須符合下列要求:
-
Oracle 資料庫 26ai 或更新版本
-
Oracle Enterprise Edition
啟用即時 SQL 計劃管理
若要啟用即時 SQL 計劃管理,請完成下列兩個步驟。
步驟 1:開啟自動 SPM 演進任務
以主要使用者或具有 DBA 角色的使用者身分執行下列陳述式:
BEGIN DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'AUTO'); END; /
步驟 2:設定 SYS 擁有的任務參數
SYS_AUTO_SPM_EVOLVE_TASK 任務由 SYS 擁有。RDS for Oracle 為此目的提供 rdsadmin.rdsadmin_spm_util套件。
ACCEPT_PLANS 設定為 ,TRUE以便資料庫自動接受進化的計劃:
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_accept_plans('TRUE');
(選用) 將替代計劃來源設定為 AUTO:
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_alternate_plan_source('AUTO');
驗證 DNS 組態
若要確認已啟用即時 SQL 計劃管理,請執行下列查詢:
SELECT parameter_value FROM DBA_SQL_MANAGEMENT_CONFIG WHERE parameter_name = 'AUTO_SPM_EVOLVE_TASK';
查詢會傳回 AUTO。
若要驗證任務參數設定,請執行下列查詢:
SELECT parameter_name, parameter_value FROM DBA_ADVISOR_PARAMETERS WHERE task_name = 'SYS_AUTO_SPM_EVOLVE_TASK' AND parameter_name IN ('ACCEPT_PLANS', 'ALTERNATE_PLAN_SOURCE');
停用即時 SQL 計畫管理
若要停用即時 SQL 計劃管理,請執行下列陳述式:
BEGIN DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'OFF'); END; /
rdsadmin_spm_util 程序
rdsadmin.rdsadmin_spm_util 套件提供下列程序。
| 程序 | 參數 | 預設 | 說明 |
|---|---|---|---|
|
|
|
|
設定 的 |
|
|
|
|
設定 的 |
監控 SQL 計劃基準
啟用即時 SQL 計劃管理之後,您可以監控資料庫自動管理的計劃基準:
SELECT SQL_HANDLE, PLAN_NAME, ENABLED, ACCEPTED, AUTOPURGE FROM DBA_SQL_PLAN_BASELINES ORDER BY LAST_MODIFIED DESC;
考量事項
當您使用即時 SQL 計劃管理時,請考慮下列事項:
-
具有 DBA 角色的使用者可以
DBMS_SPM.CONFIGURE直接呼叫 。此步驟不需要包裝函式。 -
在 SYS 擁有的任務上設定
SYS_AUTO_SPM_EVOLVE_TASK任務參數需要這些rdsadmin.rdsadmin_spm_util程序,因為主要使用者無法直接存取 SYS 擁有的顧問任務。 -
即時 SQL 計劃管理以透明的方式運作。您不需要變更應用程式程式碼。
-
SQL 計劃基準會耗用 SYSAUX 資料表空間中的空間。啟用此功能後,監控 SYSAUX 用量。
-
傳遞給
DBMS_SPM.CONFIGURE(例如'AUTO'和'OFF') 的參數值區分大小寫。使用大寫值。
相關資源
-
Oracle 資料庫文件中的 DBMS_SPM
-
Oracle 資料庫文件中的管理 SQL 計劃基準