Funciones de alto rendimiento de la base de datos de IA autónoma en infraestructura de Exadata dedicada
En este artículo se describen las funciones clave de ajuste del rendimiento en Autonomous AI Database on Dedicated Exadata Infrastructure.
Tenga en cuenta que a lo largo de esta sección, el término "usted" se usa 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 AI 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 características de gestión del ajuste y el rendimiento SQL de Oracle Autonomous AI Database, e instrucciones sobre cómo utilizarlas, consulte Oracle Database 19c SQL Tuning Guide u Oracle Database 26ai SQL Tuning Guide.
A continuación, se muestra una amplia clasificación de las funciones clave de ajuste del rendimiento de la base de datos de IA autónoma.
Descripción de la ilustración hp_features.svg
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.
Al realizar conexiones a su base de datos de IA autónoma, el rendimiento de la interacción de su aplicación con la base de datos depende del servicio de base de datos al que se conecte. Autonomous AI Database proporciona varios juegos de servicios de base de datos que utilizar al conectarse a la base de datos. Estos servicios de conexión están diseñados para soportar diferentes tipos de operaciones de base de datos, como se describe en Nombres de servicio de base de datos predefinidos para bases de datos de IA autónomas.
Consejo: 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 su base de datos de IA autónoma, puede utilizar pools de conexiones para reducir la sobrecarga de rendimiento que supone 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
Oracle Net Services (anteriormente llamado SQL*Net) proporciona diversas funciones de conexión que mejoran el rendimiento en escenarios de conexión específicos. Estas funciones se describen en la Oracle Database 19c Net Services Administrator's Guide o en la Oracle Database 26ai Net Services Administrator's Guide.
-
El etiquetado de ubicación es una función que resulta ú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 of Client Connections en Oracle Database 19c u Oracle Database 26ai.
-
La configuración de servidor compartido es otra función que la base de datos de IA autónoma admite para mantener aplicaciones heredadas diseñadas sin agrupación 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 la aplicación puede soportar. 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 conexiones de servidor compartido al aprovisionar una base de datos de contenedores autónoma (ACD) y este valor se aplica a todas las bases de datos creadas en ella. Consulte Crear 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 26ai 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 de 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.
Nota: No puede desactivar un servidor compartido para una base de datos de IA autónoma específica creada en una base de datos de contenedores autónoma con servidor compartido activado, y no puede utilizar una conexión dedicada para bases de datos de IA autónomas creadas en una base de datos de contenedores autónoma con servidor compartido activado.
Funciones de Ajuste de Rendimiento SQL
Las grandes aplicaciones comienzan por un lenguaje SQL bien escrito. Oracle Autonomous AI Database proporciona numerosas funciones que le permiten crear aplicaciones de alto rendimiento y validar su código SQL y PL/SQL. Algunas de estas funciones 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
-
Rastreo SQL
A medida que desarrolle su aplicación, puede aprender rápidamente cómo afectan estas funciones al código SQL que escribe y, por tanto, mejorar su código mediante el uso de la hoja de trabajo SQL proporcionada por Oracle Database Actions (que está integrada en su base de datos de IA autónoma) y Oracle SQL Developer (aplicación gratuita que instala en el sistema a desarrollar).
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 de la incidencia de rendimiento. Para ello, puede utilizar el rastreo SQL en una base de datos de IA autónoma.
El rastreo SQL está desactivado por defecto en la base de datos de IA autónoma. Debe activarla para empezar a recopilar los datos de rastreo SQL. Consulte Uso del rastreo SQL en la base de datos de IA autónoma para obtener instrucciones detalladas para activar y utilizar el rastreo SQL.
Estadísticas del optimizador
La base de datos de IA autónoma recopila automáticamente las estadísticas del optimizador para que no tenga que realizar esta tarea manualmente, lo cual ayuda a garantizar la actualización de las estadísticas. La recolección automática de estadísticas está activada en la base de datos de IA autónoma y se ejecuta en una ventana del mantenimiento estándar.
Nota: Para obtener más información sobre los horarios de ventanas de mantenimiento y recopilación automática de estadísticas del optimizador, consulte Oracle Database 19c Administrator's Guide u Oracle Database 26ai Administrator's Guide. Para obtener más información sobre las estadísticas del optimizador, consulte Oracle Database 19c SQL Tuning Guide u Oracle Database 26ai 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.
Los valores por defecto de la base de datos de IA autónoma para el optimizador y las indicaciones PARALLEL varían según la carga de trabajo:
-
Autonomous AI Lakehouse: Autonomous AI Database con Data Warehouse ignora las indicaciones del optimizador y las indicaciones
PARALLELen 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_HINTSenFALSEen el nivel de sesión o del sistema medianteALTER SESSIONoALTER 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
PARALLELen las sentencias SQL definiendoOPTIMIZER_IGNORE_PARALLEL_HINTSenFALSEen el nivel de sesión o del sistema medianteALTER SESSIONoALTER SYSTEM.Por ejemplo, el siguiente comando activa las indicaciones
PARALLELen la sesión:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE; -
Autonomous AI Transaction Processing: Autonomous AI Database honra a las indicaciones del optimizador y las indicaciones
PARALLELen las sentencias SQL por defecto.Puede desactivar las indicaciones del optimizador definiendo el parámetro
OPTIMIZER_IGNORE_HINTSenTRUEen el nivel de sesión o del sistema medianteALTER SESSIONoALTER 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
PARALLELen las sentencias SQL definiendoOPTIMIZER_IGNORE_PARALLEL_HINTSenTRUEen el nivel de sesión o del sistema medianteALTER SESSIONoALTER SYSTEM.Por ejemplo, el siguiente comando activa las indicaciones
PARALLELen 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 la base de datos de IA autónoma. La indexación automática está desactivada por defecto en Autonomous AI 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 la base de datos de IA autónoma supervisa la carga de Trabajo de la aplicación y crea y mantiene índices automáticamente.
Consejo: si desea una alternativa de "prueba" que demuestra estas instrucciones, ejecute el el laboratorio 14 sobre indexación automática en el taller Oracle Autonomous AI Database Dedicated for Developers and Database Users.
Activar indexación automática
-
Utilice el procedimiento
DBMS_AUTO_INDEX.CONFIGUREpara 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_INDEXpara informar sobre la tarea automática y definir las preferencias de indexación automática. Nota: Nota: Cuando la indexación automática está activada, la compresión de índice para los índices automatizados está activada por defecto.
Desactivar indexación automática
Utilice el procedimiento 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 Guía del administrador de Oracle Database 19c u Guía del administrador de Oracle Database 26ai.
Ingestión rápida
La ingestión rápida optimiza el procesamiento de inserciones de datos de una sola fila y alta frecuencia en una base de datos. La ingestión rápida utiliza el pool grande para almacenar en buffer las inserciones antes de escribirlas en el disco, a fin de mejorar el rendimiento de las inserciones de datos.
La intención de fast-ingest es apoyar aplicaciones que generan muchos datos informativos que tienen un valor importante en el agregado, pero que no necesariamente requieren garantías completas de ACID. Muchas aplicaciones en el Internet of Things (IoT) tienen una carga de trabajo de tipo "fuego y olvido" rápido, 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 su análisis posterior.
La ingesta rápida es muy diferente del procesamiento normal de transacciones de Oracle AI Database, donde los datos se registran y nunca se pierden una vez que se "escriben" en la base de datos (es decir, se confirman). Para lograr el rendimiento máximo de ingestión, se omiten los mecanismos de transacción normales 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 ingesta rápida en Oracle Database 19c Performance Tuning Guide u Oracle Database 26ai Performance Tuning Guide.
Para utilizar la ingestión rápida con tu base de datos de IA autónoma, debes:
-
Activar el Optimizador para Utilizar Indicaciones: Defina el parámetro
optimizer_ignore_hintsenFALSEen el nivel de sesión o de sistema, según corresponda.Según el tipo de carga de trabajo de la base de datos de IA autónoma, por defecto,
optimizer_ignore_hintsse puede definir enFALSEen el nivel del 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 26ai para conocer las limitaciones para que las tablas sean elegibles para ingesta rápida (las tablas con las características especificadas no pueden utilizar la ingesta rápida).
Clases de trabajos predefinidas con Oracle Scheduler
La base de datos de IA autónoma incluye valores job_class predefinidos para usar con Oracle Scheduler. Estas clases de trabajo le permiten agrupar trabajos que comparten características y comportamientos comunes en entidades más grandes para que pueda priorizar entre estas clases mediante el control de 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 almacenamiento de datos en una clase y priorizarlos 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 job_class predefinidos, 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 la base de datos de IA autónoma.
Por ejemplo: utilice lo siguiente para crear un único trabajo normal que se ejecute 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 para Oracle Scheduler:
-
Para utilizar
DBMS_SCHEDULER.CREATE_JOBpueden ser necesarios permisos adicionales para roles o privilegios específicos. El usuarioADMINy los usuarios conDWROLEtienen los privilegiosCREATE SESSIONyCREATE JOBnecesarios. Si un usuario no tieneDWROLE, se necesitan permisos para los privilegiosCREATE SESSIONyCREATE JOB. -
El atributo de trabajo
instance_idse ignora para los trabajos de Oracle Scheduler que se ejecutan en la base de datos de IA autónoma.
Consulte Programación de trabajos con Oracle Scheduler en Oracle Database 19c u Oracle Database 26ai 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 26ai para obtener información sobre los atributos de trabajo.
Herramientas de Ajuste y Control de Rendimiento
Varias situaciones, como el cambio de cargas de trabajo, la limitación de recursos en servidores de bases de datos y aplicaciones, o simplemente cuellos de botella en red, pueden dar lugar a problemas de rendimiento de la aplicación. Oracle proporciona una amplia gama de herramientas para ayudarle a supervisar el rendimiento, diagnosticar incidencias de rendimiento y ajustar la aplicación o la base de datos para resolver la incidencia. Algunas de ellas se enumeran a continuación:
| Herramienta | Detalles |
|---|---|
| Hub de rendimiento | Una herramienta con muchas funciones fácilmente disponible que está disponible en la consola de Oracle Cloud Infrastructure (OCI). El hub de rendimiento también está integrado con Oracle Database Actions y Oracle Enterprise Manager. Consulte Supervisión del rendimiento de la base de datos con el hub de rendimiento para obtener más información. |
| Métricas de base de datos de IA autónoma | Las métricas de bases de datos de IA autónomas le ayudan a medir datos cuantitativos útiles, como el uso de CPU y almacenamiento, el número de intentos correctos y fallidos de inicio de sesión de bases de datos y de conexión, las operaciones, las consultas SQL, las transacciones, etc. Puede utilizar datos de métricas para diagnosticar y solucionar problemas con sus recursos de base de datos de IA autónoma. Consulte Supervisión de bases de datos con métricas de base de datos de IA autónoma para obtener más información, como sus requisitos previos, su uso y la lista de métricas disponibles para Autonomous AI Database en infraestructura de Exadata dedicada. |
| Repositorio de Carga de Trabajo Automática (AWR) y Monitor de Diagnóstico de Base de Datos Automático (ADDM) | AWR almacena estadísticas relacionadas con el rendimiento para una base de datos, y ADDM es una herramienta de diagnóstico que analiza los datos de AWR de forma regular, proporciona recomendaciones para corregir los problemas e identificar áreas no problemáticas del sistema. AWR almacena las estadísticas relacionadas con la eficacia para una base de datos Oracle, y ADDM es una herramienta para diagnóstico que analiza los datos del repositorio de carga de trabajo automática de forma regular, localiza las causas raíz de cualquier problemas de rendimiento, proporciona recomendaciones para corregir los problemas e identifica áreas no problemáticas del sistema. Puesto que AWR es un repositorio de datos de rendimiento históricos, ADDM puede analizar los problemas de rendimiento después del evento, lo que suele ahorrar tiempo y recursos en la 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 la Guía de ajuste del rendimiento de Oracle Database 19c u Guía de ajuste del rendimiento de Oracle Database 26ai. AWR y ADDM también están disponibles en el hub de rendimiento. Consulte Supervisión del rendimiento de la base de datos con el hub de rendimiento para obtener más información. Para obtener una introducción rápida a la supervisión y el ajuste del rendimiento de la base de datos, consulte Oracle Database 19c 2 Day + Performance Tuning Guide u Oracle Database 26ai 2 Day + Performance Tuning Guide. |