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.

Al realizar conexiones a Autonomous Database, el rendimiento de la interacción de la aplicación con la base de datos depende del servicio de base de datos al que se conecte. Autonomous 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 autónomas.

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

Oracle Net Services (anteriormente llamado SQL*Net) proporciona diversas funciones de conexión que mejoran el rendimiento en escenarios de conexión específicos. These features are described in Oracle Database 19c Net Services Administrator's Guide or Oracle Database 23ai Net Services Administrator's Guide.
  • 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.

Los valores por defecto de Autonomous Database para el optimizador y las indicaciones 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 en FALSE en el nivel de sesión o del sistema mediante ALTER SESSION o ALTER 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 definiendo OPTIMIZER_IGNORE_PARALLEL_HINTS en FALSE en el nivel de sesión o del sistema mediante ALTER SESSION o ALTER SYSTEM.

    Por ejemplo, el siguiente comando activa las indicaciones PARALLEL 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 en TRUE en el nivel de sesión o del sistema mediante ALTER SESSION o ALTER 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 definiendo OPTIMIZER_IGNORE_PARALLEL_HINTS en TRUE en el nivel de sesión o del sistema mediante ALTER SESSION o ALTER 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 .
Activar indexación automática
  • 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.
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 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.

Para utilizar la ingesta rápida con Autonomous Database, debe:
  • Activar el Optimizador para Utilizar Indicaciones: Defina el parámetro optimizer_ignore_hints en FALSE 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 en FALSE 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 usuario ADMIN y los usuarios con DWROLE tienen los privilegios CREATE SESSION y CREATE JOB necesarios. Si un usuario no tiene DWROLE, se necesitan permisos para los privilegios CREATE SESSION y CREATE 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

Varias situaciones, como el cambio de cargas de trabajo, las limitaciones de recursos en servidores de aplicaciones y bases de datos o simplemente los cuellos de botella en la red, pueden dar lugar a incidencias 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. Algunos de ellos se enumeran a continuación:
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.