RDS for Oracle의 실시간 SQL Plan Management
Oracle Database 26ai(26.0.0.0)부터 Amazon RDS for Oracle은 실시간 SQL Plan Management를 지원합니다. 이 기능은 실행 계획 변경 사항을 감지하고, 이전 계획과 비교하여 평가하고, 필요에 따라 SQL 계획 기준에서 최고 성능의 계획을 선택하여 SQL 성능 회귀를 방지합니다. 이 프로세스는 투명하며 수동 개입이 필요하지 않습니다.
RDS for Oracle에서 실시간 SQL Plan Management를 활성화하려면 DBMS_SPM.CONFIGURE를 사용하여 auto evolve task를 켭니다. 그런 다음 rdsadmin.rdsadmin_spm_util 패키지를 사용하여 SYS 소유 태스크 파라미터를 구성합니다.
주제
개요
SQL 성능 회귀는 Oracle 옵티마이저가 이전 계획보다 성능이 떨어지는 새 실행 계획을 선택할 때 발생합니다. 실시간 SQL Plan Management는 이러한 회귀를 자동으로 탐지 및 방지합니다.
실시간 SQL Plan Management가 활성화되면 데이터베이스는 다음을 수행합니다.
-
실행 계획 변경 사항을 실시간으로 감지합니다.
-
이전 계획과 비교하여 새 계획의 성능을 평가합니다.
-
SQL 계획 기준을 자동으로 생성하거나 업데이트합니다.
-
회귀를 방지하기 위해 가장 성능이 좋은 계획을 선택합니다.
요구 사항
실시간 SQL Plan Management를 사용하려면 DB 인스턴스가 다음 요구 사항을 충족해야 합니다.
-
Oracle Database 26ai 이상
-
Oracle Enterprise Edition
실시간 SQL Plan Management 활성화
실시간 SQL Plan Management를 활성화하려면 다음 두 단계를 완료합니다.
1단계: auto SPM evolve task 켜기
마스터 사용자 또는 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');
구성 확인
실시간 SQL Plan Management가 활성화되어 있는지 확인하려면 다음 쿼리를 실행합니다.
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 Plan Management 비활성화
실시간 SQL Plan Management를 비활성화하려면 다음 문을 실행합니다.
BEGIN DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'OFF'); END; /
rdsadmin_spm_util 프로시저
rdsadmin.rdsadmin_spm_util 패키지는 다음 프로시저를 제공합니다.
| 절차 | 파라미터 | 기본값 | 설명 |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
SQL 계획 기준 모니터링
실시간 SQL Plan Management를 활성화한 후 데이터베이스가 자동으로 관리하는 계획 기준을 모니터링할 수 있습니다.
SELECT SQL_HANDLE, PLAN_NAME, ENABLED, ACCEPTED, AUTOPURGE FROM DBA_SQL_PLAN_BASELINES ORDER BY LAST_MODIFIED DESC;
고려 사항
실시간 SQL Plan Management를 사용할 때는 다음 사항을 고려하세요.
-
DBA 역할이 있는 사용자는
DBMS_SPM.CONFIGURE를 직접적으로 호출할 수 있습니다. 이 단계에서는 래퍼가 필요하지 않습니다. -
마스터 사용자는 SYS 소유 어드바이저 태스크에 직접 액세스할 수 없으므로 SYS 소유
SYS_AUTO_SPM_EVOLVE_TASK태스크에서 태스크 파라미터를 구성하는 데rdsadmin.rdsadmin_spm_util절차가 필요합니다. -
실시간 SQL Plan Management는 투명하게 작동합니다. 애플리케이션 코드를 변경할 필요가 없습니다.
-
SQL 계획 기준은 SYSAUX 테이블스페이스의 공간을 사용합니다. 기능을 활성화한 후 SYSAUX 사용량을 모니터링합니다.
-
DBMS_SPM.CONFIGURE에 전달되는 파라미터 값(예:'AUTO'및'OFF')은 대/소문자를 구분합니다. 대문자 값을 사용합니다.
관련 리소스
-
Oracle Database 설명서의 DBMS_SPM
-
Oracle Database 설명서의 SQL 계획 기준 관리