Administración de planes SQL en tiempo real en RDS para Oracle
A partir de Oracle Database 26ai (26.0.0.0), Amazon RDS para Oracle admite la administración de planes SQL en tiempo real. Esta característica evita las regresiones del rendimiento de SQL al detectar los cambios en el plan de ejecución, evaluarlos en comparación con planes anteriores y seleccionar el plan con el mejor rendimiento a partir de una referencia del plan SQL, según sea necesario. Este proceso es transparente y no requiere intervención manual.
Para habilitar la administración de planes SQL en tiempo real en RDS para Oracle, utilice DBMS_SPM.CONFIGURE para activar la tarea de evolución automática. A continuación, utilice el paquete rdsadmin.rdsadmin_spm_util para configurar los parámetros de la tarea propiedad de SYS.
Temas
Descripción general
Se produce una regresión del rendimiento de SQL cuando el optimizador de Oracle elige un nuevo plan de ejecución que funciona peor que un plan anterior. La administración de planes SQL en tiempo real automatiza la detección y la prevención de estas regresiones.
Cuando la administración de planes SQL en tiempo real está habilitada, la base de datos hace lo siguiente:
-
Detecta cambios en el plan de ejecución en tiempo real.
-
Evalúa el rendimiento del nuevo plan en comparación con los planes anteriores.
-
Crea o actualiza automáticamente las referencias del plan SQL.
-
Selecciona el plan con mejor rendimiento para evitar regresiones.
Requisitos
Para utilizar la administración de planes SQL en tiempo real, la instancia de base de datos debe cumplir los siguientes requisitos:
-
Oracle Database 26ai o superiores
-
Oracle Enterprise Edition
Habilitación de la administración de planes SQL en tiempo real
Para habilitar la administración de planes SQL en tiempo real, complete los dos pasos siguientes.
Paso 1: activación de la tarea de evolución automática de SPM
Ejecute la siguiente instrucción como usuario maestro o como usuario con el rol de DBA:
BEGIN DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'AUTO'); END; /
Paso 2: configuración de los parámetros de la tarea propiedad de SYS
La tarea SYS_AUTO_SPM_EVOLVE_TASK es propiedad de SYS. RDS para Oracle proporciona el paquete rdsadmin.rdsadmin_spm_util para este propósito.
Establezca ACCEPT_PLANS en TRUE para que la base de datos acepte automáticamente los planes evolucionados:
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_accept_plans('TRUE');
(Opcional) Establezca el origen del plan alternativo en AUTO:
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_alternate_plan_source('AUTO');
Verificación de la configuración
Para comprobar que la administración de planes SQL en tiempo real está habilitada, ejecute la siguiente consulta:
SELECT parameter_value FROM DBA_SQL_MANAGEMENT_CONFIG WHERE parameter_name = 'AUTO_SPM_EVOLVE_TASK';
Esta consulta devuelve AUTO.
Para comprobar la configuración de los parámetros de la tarea, ejecute la siguiente consulta:
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');
Desactivación de la administración de planes SQL en tiempo real
Para desactivar la administración de planes SQL en tiempo real, ejecute la siguiente instrucción:
BEGIN DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'OFF'); END; /
procedimientos rdsadmin_spm_util
El paquete rdsadmin.rdsadmin_spm_util proporciona los siguientes procedimientos.
| Procedimiento | Parámetro | Predeterminado | Descripción |
|---|---|---|---|
|
|
|
|
Establezca el parámetro |
|
|
|
|
Establezca el parámetro |
Supervisión de las referencias del plan SQL
Después de habilitar la administración de planes SQL en tiempo real, puede supervisar las referencias del plan que la base de datos administra automáticamente:
SELECT SQL_HANDLE, PLAN_NAME, ENABLED, ACCEPTED, AUTOPURGE FROM DBA_SQL_PLAN_BASELINES ORDER BY LAST_MODIFIED DESC;
Consideraciones
Cuando utilice la administración de planes SQL en tiempo real, tenga en cuenta lo siguiente:
-
Los usuarios con el rol de DBA pueden llamar a
DBMS_SPM.CONFIGUREdirectamente. Este paso no requiere un envoltorio. -
Los procedimientos
rdsadmin.rdsadmin_spm_utilson necesarios para configurar los parámetros de la tareaSYS_AUTO_SPM_EVOLVE_TASKpropiedad de SYS, ya que el usuario maestro no tiene acceso directo a las tareas del asesor propiedad de SYS. -
La administración de planes SQL en tiempo real funciona de forma transparente. No necesita cambiar el código de la aplicación.
-
Las referencias del plan SQL consumen espacio en el espacio de tablas de SYSAUX. Supervise el uso de SYSAUX después de habilitar la característica.
-
Los valores de los parámetros transferidos a
DBMS_SPM.CONFIGURE(como'AUTO'y'OFF') distinguen mayúsculas de minúsculas. Utilice valores en mayúscula.
Recursos relacionados
-
DBMS_SPM
en la documentación de Oracle Database -
Administración de las referencias del plan SQL
en la documentación de Oracle Database