Funciones de alto rendimiento de Autonomous Database on Dedicated Exadata Infrastructure
En este artículo se describen las funciones clave de ajuste del rendimiento de Autonomous Database on Dedicated Exadata Infrastructure.
Tenga en cuenta que a lo largo de esta sección, el término "usted" se utiliza ampliamente para referirse a cualquier usuario de su organización que tenga la responsabilidad de realizar ciertas tareas. En algunos casos, ese es el DBA de la aplicación, en otros es el desarrollador de la aplicación.
Autonomous Database incluye varias funciones que supervisan, analizan y optimizan automáticamente el rendimiento de su base de datos. Para obtener una lista completa de las funciones de gestión del ajuste y el rendimiento de SQL de Oracle Autonomous Database, e instrucciones sobre cómo utilizarlas, consulte Oracle Database 19c SQL Tuning Guide o Oracle Database 23ai SQL Tuning Guide.
Puede ver una amplia clasificación de las funciones de ajuste de rendimiento clave de Autonomous Database que se muestran a continuación.
Sugerencia:
En la siguiente imagen, puede hacer clic en la función que desea explorar más a fondo.Servicios de base de datos predefinidos
La forma en que la aplicación se conecta a la base de datos y la forma en que codifica las llamadas SQL a la base de datos determinan el rendimiento general de las operaciones de procesamiento de transacciones y generación de informes de la aplicación.
Sugerencia:
Asegúrese de revisar las características clave de los servicios de base de datos predefinidos y la tabla que compara los diferentes juegos de servicios de base de datos en función de estas características para decidir qué servicio de base de datos es más adecuado para los requisitos de rendimiento de la aplicación.Pools de Conexiones
Al realizar conexiones a Autonomous Database, puede utilizar pools de conexiones para reducir la sobrecarga de rendimiento de la creación y destrucción repetidas de conexiones individuales. Este es otro factor que tiene un gran impacto en el rendimiento de la interacción de la aplicación con la base de datos.
Con frecuencia, el uso de pools de conexiones solo se considera al diseñar o mejorar una aplicación para proporcionar disponibilidad continua. Sin embargo, el uso de pools de conexiones en lugar de conexiones individuales puede beneficiar a casi todas las aplicaciones de procesamiento de transacciones. Un pool de conexiones proporciona las siguientes ventajas:
- Reduce el número de veces que se crean nuevos objetos de conexión.
- Fomenta la reutilización de objetos de conexión.
- Acelera el proceso de obtención de una conexión.
- Controla la cantidad de recursos dedicados al mantenimiento de conexiones.
- Reduce la cantidad de esfuerzo de codificación necesario para gestionar manualmente los objetos de conexión.
Funciones de conexión con fines especiales
-
El etiquetado de colocación es una función útil en determinadas aplicaciones de procesamiento de transacciones. Si la aplicación realiza conexiones al mismo servicio de base de datos de forma repetida, el etiquetado de colocación permite que todas estas conexiones se dirijan a la misma instancia de base de datos, omitiendo el procesamiento de equilibrio de carga que se realiza normalmente en el lado de la base de datos de las conexiones. Para obtener más información, consulte COLOCATION_TAG de conexiones de cliente en Oracle Database 19c u Oracle Database 23ai.
-
La configuración de servidor compartido es otra función que Autonomous Database soporta para mantener las aplicaciones heredadas diseñadas sin pool de conexiones. La arquitectura de servidor compartido hace posible que el servidor de base de datos permita que muchos procesos de cliente compartan muy pocos procesos de servidor. Esto aumenta el número de usuarios que puede soportar la aplicación. El uso de la arquitectura de servidor compartido para dichas aplicaciones heredadas les permite escalar verticalmente sin realizar cambios en la propia aplicación.
Puede activar las conexiones de servidor compartido al aprovisionar una base de datos de contenedores autónoma (ACD) y esta configuración se aplica a todas las bases de datos creadas en ella. Consulte Creación de una base de datos de contenedores autónoma para obtener instrucciones.
Consulte también Oracle Database 19c Net Services Administrator's Guide u Oracle Database 23ai Net Services Administrator's Guide para obtener información más detallada sobre los servidores compartidos, incluidas funciones como la multiplexación de sesiones.
Una vez activada la conexión del servidor compartido para la base de datos de contenedores autónoma, no es necesario cambiar la cadena de conexión. La configuración por defecto se define en Dedicated.
Note:
No puede desactivar un servidor compartido para una instancia de Autonomous Database específica creada en una base de datos de contenedores autónoma activada para el servidor compartido y no puede utilizar una conexión dedicada para instancias de Autonomous Database creadas en una base de datos de contenedores autónoma activada para el servidor compartido.
Funciones de Ajuste del Rendimiento SQL
Las grandes aplicaciones comienzan por un lenguaje SQL bien escrito. Oracle Autonomous Database proporciona numerosas funciones que le permiten crear aplicaciones de alto rendimiento y validar su código SQL y PL/SQL. Algunas de estas características se enumeran a continuación:
- Indexación automática
- Estadísticas e Indicaciones del Optimizador
- Resolución automática de regresiones de planes SQL
- Cuarentena automática de sentencias SQL sin control.
- Gestión de planes SQL
- Juegos de ajustes SQL
- SQL Trace
A medida que desarrolle su aplicación, puede aprender rápidamente cómo afectan estas funciones al código SQL que escribe y, por lo tanto, mejorar su código mediante la hoja de trabajo de SQL proporcionada por Oracle Database Actions (que está integrado en Autonomous Database) y Oracle SQL Developer (a aplicación gratuita que instala en el sistema de desarrollo).
Rastreo SQL
Cuando una operación de aplicación tarda más de lo esperado, obtener un rastreo de todas las sentencias SQL ejecutadas como parte de esta operación con detalles como el tiempo empleado por esa sentencia SQL en las fases de análisis, ejecución y recuperación le ayudará a identificar y resolver la causa del problema de rendimiento. Puede utilizar el rastreo SQL en una instancia de Autonomous Database para lograrlo.
El rastreo SQL está desactivado por defecto en Autonomous Database. Debe activarla para empezar a recopilar los datos de rastreo SQL. Consulte Uso del rastreo SQL en Autonomous Database para obtener instrucciones detalladas sobre cómo activar y utilizar el rastreo SQL.
Estadísticas del optimizador
Autonomous Database recopila las estadísticas del optimizador automáticamente para que no tenga que realizar esta tarea manualmente, lo que ayuda a garantizar que las estadísticas estén actualizadas. La recopilación automática de estadísticas está activada en Autonomous Database y se ejecuta en una ventana de mantenimiento estándar.
Note:
Para obtener más información sobre los horarios de la ventana de mantenimiento y la recopilación automática de estadísticas del optimizador, consulte Oracle Database 19c Administrator's Guide o Oracle Database 23ai Administrator's Guide.
Para obtener más información sobre las estadísticas del optimizador, consulte Oracle Database 19c SQL Tuning Guide o Oracle Database 23ai SQL Tuning Guide.
Indicaciones de Optimizador
Las indicaciones del optimizador son comentarios especiales en una sentencia SQL que transfieren instrucciones al optimizador. El optimizador utiliza las indicaciones para seleccionar un plan de ejecución para la sentencia a menos que lo impida alguna condición.
PARALLEL
varían según la carga de trabajo:
-
Autonomous Data Warehouse: Autonomous Database con Data Warehouse sustituye las indicaciones del optimizador y las indicaciones
PARALLEL
en las sentencias SQL por defecto.Si la aplicación se basa en las indicaciones, puede activar las indicaciones del optimizador definiendo el parámetro
OPTIMIZER_IGNORE_HINTS
enFALSE
en el nivel de sesión o del sistema medianteALTER SESSION
oALTER SYSTEM
.Por ejemplo, el siguiente comando activa las indicaciones en la sesión:ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=FALSE;
También puede activar las indicaciones
PARALLEL
en las sentencias SQL definiendoOPTIMIZER_IGNORE_PARALLEL_HINTS
enFALSE
en el nivel de sesión o del sistema medianteALTER SESSION
oALTER SYSTEM
.Por ejemplo, el siguiente comando activa las indicacionesPARALLEL
en la sesión:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE;
-
Autonomous Transaction Processing: Autonomous Database respeta las indicaciones del optimizador y las indicaciones
PARALLEL
en las sentencias SQL por defecto.Puede desactivar las indicaciones del optimizador definiendo el parámetro
OPTIMIZER_IGNORE_HINTS
enTRUE
en el nivel de sesión o del sistema medianteALTER SESSION
oALTER SYSTEM
.Por ejemplo, el siguiente comando desactiva las indicaciones en la sesión:
ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=TRUE;
También puede desactivar las indicaciones
PARALLEL
en las sentencias SQL definiendoOPTIMIZER_IGNORE_PARALLEL_HINTS
enTRUE
en el nivel de sesión o del sistema medianteALTER SESSION
oALTER SYSTEM
.Por ejemplo, el siguiente comando activa las indicaciones
PARALLEL
en la sesión:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=TRUE;
Indexación automática
La indexación automática automatiza las tareas de gestión de índices en Autonomous Database. La indexación automática está desactivada por defecto en Autonomous Database.
La creación manual de índices requiere un profundo conocimiento del modelo de datos, la aplicación y la distribución de los datos. En el pasado, los DBA eran responsables de elegir qué índices crear y, a veces, no revisaban sus opciones ni realizaban el mantenimiento de los índices a medida que cambiaban las condiciones. En consecuencia, se perdían oportunidades de mejora y el uso de índices innecesarios podía convertirse en una lastre de rendimiento.
La función de indexación automática de Autonomous Database supervisa la carga de trabajo de la aplicación y crea y mantiene índices automáticamente.
Sugerencia:
Si desea una alternativa de "prueba" que demuestre estas instrucciones, ejecute el laboratorio 14 sobre indexación automática en el taller Oracle Autonomous Database Dedicated for Developers and Database Users .- Utilice el procedimiento
DBMS_AUTO_INDEX.CONFIGURE
para activar la indexación automática. Por ejemplo, la ejecución de la siguiente sentencia permite la indexación automática en una base de datos y crea los nuevos índices automáticos como índices visibles, para que se puedan utilizar en sentencias SQL.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');
- Utilice el paquete
DBMS_AUTO_INDEX
para informar sobre la tarea automática y definir las preferencias de indexación automática.Note:
Nota: Cuando la indexación automática está activada, la compresión de índice para los índices automáticos está activada por defecto.
DBMS_AUTO_INDEX.CONFIGURE
para desactivar la indexación automática. Por ejemplo, al ejecutar la siguiente sentencia, se desactiva la indexación automática en una base de datos para que no se creen nuevos índices automáticos. Sin embargo, los índices automáticos existentes permanecen activados.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');
Para obtener más información, consulte Gestión de índices automáticos en la Guía del administrador de Oracle Database 19c o la Guía del administrador de Oracle Database 23ai.
Ingesta rápida
La ingesta rápida optimiza el procesamiento de inserciones de datos de una sola fila de alta frecuencia en una base de datos. La ingesta rápida utiliza el pool grande para almacenar en buffer las inserciones antes de escribirlas en el disco, para mejorar el rendimiento de la inserción de datos.
La intención de fast-ingest es soportar aplicaciones que generan una gran cantidad de datos informativos que tienen un valor importante en el agregado, pero que no necesariamente requieren garantías ACID completas. Muchas aplicaciones en el Internet of Things (IoT) tienen una carga de trabajo de tipo rápido de "incendio y olvido", como datos de sensores, datos de medidores inteligentes o incluso cámaras de tráfico. Para estas aplicaciones, los datos se pueden recopilar y escribir en la base de datos en grandes volúmenes para un análisis posterior.
La ingesta rápida es muy diferente del procesamiento normal de transacciones de Oracle Database en el que los datos se registran y nunca se pierden una vez "escritos" en la base de datos (es decir, confirmados). Para lograr el máximo rendimiento de ingesta, se omiten los mecanismos normales de transacción de Oracle y es responsabilidad de la aplicación comprobar que todos los datos se han escrito en la base de datos. Se han agregado API especiales que se pueden llamar para comprobar si los datos se han escrito en la base de datos.
Para obtener una visión general de la ingesta rápida y los pasos necesarios para utilizar esta función, consulte Uso de la ingesta rápida en Oracle Database 19c Performance Tuning Guide u Oracle Database 23ai Performance Tuning Guide.
-
Activar el Optimizador para Utilizar Indicaciones: Defina el parámetro
optimizer_ignore_hints
enFALSE
en el nivel de sesión o del sistema, según corresponda.Según el tipo de carga de trabajo de Autonomous Database, por defecto,
optimizer_ignore_hints
se puede definir enFALSE
en el nivel de sistema. Consulte Estadísticas del Optimizador para obtener más información. - Crear una tabla para ingesta rápida: consulte la Guía de ajuste de rendimiento de Oracle Database 19c u Guía de ajuste de rendimiento de Oracle Database 23ai para conocer las limitaciones para que las tablas sean elegibles para la ingesta rápida (las tablas con las características especificadas no pueden utilizar la ingesta rápida).
Clases de trabajos predefinidas con Oracle Scheduler
Autonomous Database incluye valores job_class
predefinidos para su uso con Oracle Scheduler. Estas clases de trabajo permiten agrupar trabajos que comparten características y comportamientos comunes en entidades más grandes para que pueda priorizar entre estas clases controlando los recursos asignados a cada clase.
Con las clases de trabajo predefinidas, puede asegurarse de que sus trabajos críticos tengan prioridad y suficientes recursos para completar. Por ejemplo, para que un proyecto crítico cargue un almacén de datos, puede combinar todos los trabajos de almacén de datos en una clase y priorizarlo sobre otros trabajos asignando un alto porcentaje de los recursos disponibles. También puede asignar prioridades relativas a los trabajos de una clase de trabajo.
Los valores predefinidos job_class
, TPURGENT
, TP
, HIGH
, MEDIUM
y LOW
se asignan a los grupos de consumidores correspondientes. Estas clases de trabajo permiten especificar el grupo de consumidores en el que se ejecuta un trabajo con DBMS_SCHEDULER.CREATE_JOB
.
El procedimiento DBMS_SCHEDULER.CREATE_JOB
soporta los tipos de trabajo PLSQL_BLOCK
y STORED_PROCEDURE
para el parámetro job_type
en Autonomous Database.
Por ejemplo: utilice lo siguiente para crear un único trabajo normal que ejecutar en el grupo de consumidores HIGH
:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'update_sales',
job_type => 'STORED_PROCEDURE',
job_action => 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY',
start_date => '28-APR-19 07.00.00 PM Australia/Sydney',
repeat_interval => 'FREQ=DAILY;INTERVAL=2',
end_date => '20-NOV-19 07.00.00 PM Australia/Sydney',
auto_drop => FALSE,
job_class => 'HIGH',
comments => 'My new job');
END;
/
Notas sobre Oracle Scheduler:
-
Para utilizar
DBMS_SCHEDULER.CREATE_JOB
, es posible que se necesiten permisos adicionales para roles o privilegios específicos. El usuarioADMIN
y los usuarios conDWROLE
tienen los privilegiosCREATE SESSION
yCREATE JOB
necesarios. Si un usuario no tieneDWROLE
, se necesitan permisos para los privilegiosCREATE SESSION
yCREATE JOB
. -
El atributo de trabajo
instance_id
se ignora para los trabajos de Oracle Scheduler que se ejecutan en Autonomous Database.
Consulte Programación de Trabajos con Oracle Scheduler en Oracle Database 19c u Oracle Database 23ai para obtener más información sobre Oracle Scheduler y DBMS_SCHEDULER.CREATE_JOB
.
Consulte Procedimiento SET_ATTRIBUTE en Oracle Database 19c u Oracle Database 23ai para obtener información sobre los atributos de trabajo.
Herramientas de ajuste y supervisión del rendimiento
Herramienta | Detalles |
---|---|
Hub de rendimiento |
Una herramienta con muchas funciones disponible en la consola de Oracle Cloud Infrastructure (OCI). El hub de rendimiento también viene incorporado con Oracle Database Actions y Oracle Enterprise Manager. Consulte Supervisión del rendimiento de base de datos con el hub de rendimiento para obtener más información. |
Métricas de Autonomous Database |
Las métricas de Autonomous Database ayudan a medir datos cuantitativos útiles, como la utilización de la CPU y del almacenamiento, el número de intentos de conexión a la base de datos correctos y con fallos, las operaciones de base de datos, las consultas SQL, las transacciones, etc. Puede utilizar datos de métricas para diagnosticar problemas y solucionarlos con los recursos de Autonomous Database. Consulte Control de bases de datos con métricas de Autonomous Database para obtener más información, como los requisitos, el uso y la lista de métricas disponibles para Autonomous Database on Dedicated Exadata Infrastructure. |
Repositorio de Carga de Trabajo Automática (AWR) y Supervisión de Diagnóstico de Base de Datos Automática (ADDM) |
Otras dos herramientas que se utilizan habitualmente son el repositorio de carga de trabajo automática (AWR) y el monitor de diagnóstico de base de datos automático (ADDM). AWR almacena estadísticas relacionadas con el rendimiento para una base de datos Oracle, y ADDM es una herramienta de diagnóstico que analiza los datos de AWR con regularidad, localiza las causas raíz de cualquier problema de rendimiento, proporciona recomendaciones para corregir los problemas e identifica áreas no problemáticas del sistema. Puesto que AWR es un repositorio de datos históricos de rendimiento, ADDM puede analizar incidencias de rendimiento después del evento, lo que a menudo permite ahorrar tiempo y recursos de reproducción de un problema. Para obtener instrucciones sobre el uso de estas herramientas, así como información detallada sobre el ajuste y la supervisión del rendimiento de la base de datos, consulte Oracle Database 19c Performance Tuning Guide (sólo disponible en inglés) o Oracle Database 23ai Performance Tuning Guide (sólo disponible en inglés). AWR y ADDM también están disponibles en el hub de rendimiento. Consulte Supervisión del rendimiento de base de datos con el hub de rendimiento para obtener más información. Para obtener una introducción rápida al ajuste y la supervisión del rendimiento de base de datos, consulte Oracle Database 19c 2 días + Guía de ajuste de rendimiento u Oracle Database 23ai 2 días + Guía de ajuste de rendimiento. |