View a markdown version of this page

RDS for Oracle 中的即時 SQL 計劃管理 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 計劃管理時,資料庫會執行下列動作:

  1. 即時偵測執行計畫變更。

  2. 針對先前的計劃,評估新計劃的效能。

  3. 自動建立或更新 SQL 計劃基準。

  4. 選取效能最佳的計劃以防止迴歸。

要求

若要使用即時 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 套件提供下列程序。

rdsadmin_spm_util 程序
程序 參數 預設 說明

set_evolve_task_accept_plans

p_value

'TRUE'

設定 的 ACCEPT_PLANS 參數SYS_AUTO_SPM_EVOLVE_TASK。有效值為 'TRUE''FALSE'

set_evolve_task_alternate_plan_source

p_value

'AUTO'

設定 的 ALTERNATE_PLAN_SOURCE 參數SYS_AUTO_SPM_EVOLVE_TASK。有效值為 'AUTO''CURSOR_CACHE''AUTOMATIC_WORKLOAD_REPOSITORY''SQL_TUNING_SET'

監控 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') 的參數值區分大小寫。使用大寫值。

相關資源