Oracle SQLT - Amazon Relational Database Service

Oracle SQLT

Amazon RDS admite Oracle SQLTXPLAIN (SQLT) mediante el uso de la opción SQLT. Puede utilizar SQLT con cualquier edición de Oracle Database 19c y versiones posteriores.

El enunciado EXPLAIN PLAN de Oracle puede determinar el plan de ejecución de una instrucción SQL. Puede verificar si el optimizador de Oracle elige un plan de ejecución determinado, como una combinación de bucles anidados. También le ayuda a comprender las decisiones del optimizador, p. ej. por qué elige una combinación de bucles anidados sobre una combinación hash. Así pues, EXPLAIN PLAN le ayuda a comprender el desempeño de la instrucción.

SQLT es una utilidad de Oracle que produce un informe. En el informe se incluyen estadísticas de objetos, metadatos de objetos, parámetros de inicialización relacionados con el optimizador y otra información que puede usar un administrador de base de datos para ajustar una instrucción SQL y obtener un desempeño óptimo. SQLT produce un informe HTML con hipervínculos a todas las secciones del informe.

A diferencia de los informes de Automatic Workload Repository o Statspack, SQLT funciona en instrucciones SQL individuales. SQLT es un conjunto de archivos SQL, PL/SQL y SQL*Plus que recopilan, almacenan y muestran datos de desempeño.

A continuación se encuentran las versiones compatibles de Oracle para cada versión de SQLT.

Versión de SQLT Oracle Database 21c Oracle Database 19c

2018-07-25.v1

Soportado

Soportado

2018-03-31.v1

No admitido

No admitido

2016-04-29.v1

No admitido

No admitido

Para descargar SQLT y acceder a sus instrucciones de uso, haga lo siguiente:

Amazon RDS no admite los siguientes métodos SQLT:

  • XPLORE

  • XHUME

Requisitos previos para SQLT

A continuación se indican los requisitos previos para utilizar SQLT:

  • Debe quitar los usuarios y funciones requeridos por SQLT, si existen.

    La opción SQLT crea los siguientes usuarios y funciones en una instancia de base de datos:

    • SQLTXPLAIN usuario

    • SQLTXADMIN usuario

    • SQLT_USER_ROLE rol

    Si su instancia de base de datos tiene cualquiera de estos usuarios o funciones, inicie sesión en la instancia de base de datos mediante un cliente SQL y suéltelos mediante las siguientes instrucciones:

    DROP USER SQLTXPLAIN CASCADE; DROP USER SQLTXADMIN CASCADE; DROP ROLE SQLT_USER_ROLE CASCADE;
  • Debe quitar los espacios de tablas requeridos por SQLT, si existen.

    La opción SQLT crea los siguientes espacios de tablas en una instancia de base de datos:

    • RDS_SQLT_TS

    • RDS_TEMP_SQLT_TS

    Si su instancia de base de datos tiene estos espacios de tablas, inicie sesión en la instancia de base de datos mediante un cliente SQL y suéltelos.

Configuración de la opción SQLT

SQLT puede trabajar con características con licencia proporcionadas por los paquetes Oracle Tuning Pack y Oracle Diagnostics Pack. El paquete Oracle Tuning Pack incluye SQL Tuning Advisor, mientras que Oracle Diagnostics Pack incluye Automatic Workload Repository. La configuración de SQLT habilita o deshabilita el acceso a estas características desde SQLT.

Amazon RDS admite los siguientes valores para las opciones de SQLT.

Ajuste de la opción Valores válidos Valor predeterminado Descripción

LICENSE_PACK

T, D, N

N

Los paquetes Oracle Management Pack a los que desea obtener acceso con SQLT. Escriba uno de los siguientes valores:

  • T indica que tiene una licencia de los paquetes Oracle Tuning Pack y Oracle Diagnostics Pack y que desea obtener acceso a SQL Tuning Advisor y Automatic Workload Repository desde SQLT.

  • D indica que tiene una licencia del paquete Oracle Diagnostics Pack y que desea obtener acceso a Automatic Workload Repository desde SQLT.

  • N indica que no tiene ninguna licencia de los paquetes Oracle Tuning Pack y Oracle Diagnostics Pack, o bien que tiene una licencia de uno de ellos o de ambos, pero que no desea que SQLT obtenga acceso a los mismos.

nota

Amazon RDS no proporciona licencias para estos paquetes Oracle Management Pack. Si indica que desea usar un paquete que no se incluye en su instancia de base de datos, puede usar SQLT con la instancia de base de datos. Sin embargo, SQLT no puede obtener acceso al paquete y en el informe de SQLT no se incluyen los datos del mismo. Por ejemplo, si especifica T, pero la instancia de base de datos no incluye el paquete Oracle Tuning Pack, SQLT trabaja en la instancia de base de datos, pero el informe que genera no contiene datos relacionados con el paquete Oracle Tuning Pack.

VERSION

2016-04-29.v1

2018-03-31.v1

2018-07-25.v1

2016-04-29.v1

La versión de SQLT que desea instalar.

nota

Para la base de datos Oracle 19c y 21c, la única versión compatible es 2018-07-25.v1. Esta versión es la predeterminada para estas versiones.

Adición de la opción SQLT

A continuación se muestra el proceso general para añadir la opción SQLT a una instancia de base de datos:

  1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

  2. Añada la opción SQLT al grupo de opciones.

  3. Asocie el grupo de opciones a la instancia de base de datos.

Después de añadir la opción SQLT, esta se activará en cuanto se active el grupo de opciones.

Para añadir la opción SQLT a una instancia de base de datos
  1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones:

    1. En Engine, elija la edición de Oracle que desea utilizar. La opción SQLT se admite en todas las ediciones.

    2. En Major engine version (Versión principal del motor), elija la versión de su instancia de base de datos.

    Para obtener más información, consulte Creación de un grupo de opciones.

  2. Añada la opción SQLT al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte Agregar una opción a un grupo de opciones.

  3. Aplique el grupo de opciones a una instancia de base de datos nueva o existente:

  4. (Opcional) Verifique la instalación de SQLT en cada instancia de base de datos con la opción SQLT.

    1. Use un cliente SQL para conectarse a la instancia de base de datos como usuario maestro.

      Para obtener información acerca de la conexión a su base de datos Oracle mediante un cliente SQL, consulte Conexión a la instancia de base de datos de RDS para Oracle.

    2. Ejecute la siguiente consulta:

      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;

      La consulta devuelve la versión actual de la opción SQLT en Amazon RDS. 12.1.160429 es un ejemplo de una versión de SQLT que está disponible en Amazon RDS.

  5. Cambie las contraseñas de los usuarios que crea la opción SQLT.

    1. Use un cliente SQL para conectarse a la instancia de base de datos como usuario maestro.

    2. Ejecute la siguiente instrucción SQL para cambiar la contraseña del usuario SQLTXADMIN:

      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      nota

      Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

    3. Ejecute la siguiente instrucción SQL para cambiar la contraseña del usuario SQLTXPLAIN:

      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      nota

      Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

nota

La actualización de SQLT requiere la desinstalación de una versión anterior de SQLT para, a continuación, instalar la versión nueva. Así pues, todos los metadatos SQLT se pueden perder al actualizar SQLT. Una actualización de versión principal de una base de datos también desinstala y vuelve a instalar SQLT. Un ejemplo de una actualización de versión principal es una actualización de Oracle Database 19c a Oracle Database 21c.

Uso de SQLT

SQLT funciona con la utilidad Oracle SQL*Plus.

Para usar SQLT
  1. Descargue el archivo .zip SQLT en el documento 215187.1 del sitio de My Oracle Support.

    nota

    No se puede descargar SQLT 12.1.160429 del sitio de My Oracle Support. Oracle ha retirado esta versión antigua.

  2. Descomprima el archivo .zip SQLT.

  3. En un símbolo del sistema, cambie al directorio sqlt/run de su sistema de archivos.

  4. En el símbolo del sistema, abra SQL*Plus y conéctese a la instancia de base de datos como usuario maestro.

    Para obtener más información acerca de la conexión a una instancia de base de datos mediante SQL*Plus, consulte Conexión a la instancia de base de datos de RDS para Oracle.

  5. Obtenga el ID de SQL de una instrucción SQL:

    SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';

    Su resultado es similar al siguiente:

    SQL_ID ------------- chvsmttqjzjkn
  6. Analice una instrucción SQL con SQLT:

    START sqltxtract.sql sql_id sqltxplain_user_password

    Por ejemplo, para el ID de SQL chvsmttqjzjkn, escriba lo siguiente:

    START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password

    SQLT genera el informe HTML y recursos relacionados como un archivo .zip del directorio de ejecución del comando SQLT.

  7. (Opcional) Para permitir a los usuarios de la aplicación diagnosticar instrucciones SQL con SQLT, conceda SQLT_USER_ROLE a cada usuario de la aplicación con la siguiente instrucción:

    GRANT SQLT_USER_ROLE TO application_user_name;
    nota

    Oracle no recomienda ejecutar SQLT con el usuario SYS o con usuarios que tienen la función DBA. Es una práctica recomendada ejecutar SQLT Diagnostics mediante la cuenta del usuario de la aplicación, concediendo SQLT_USER_ROLE a este.

Actualización de la opción de SQLT

Con Amazon RDS for Oracle, puede actualizar la opción de SQLT de su versión existente a una versión superior. Para actualizar la opción de SQLT, complete los pasos 1–3 de Uso de SQLT para obtener la nueva versión de SQLT. Además, si concedió privilegios para la versión anterior de SQLT en el paso 7 de esa sección, vuelva a conceder los privilegios para la nueva versión de SQLT.

La actualización de la opción de SQLT da lugar a la pérdida de los metadatos de la versión más antigua de SQLT. El esquema y los objetos relacionados con la versión más antigua de SQLT se borran y se instala la versión más reciente de SQLT. Para obtener más información acerca de los cambios en la última versión de SQLT, consulte el documento 1614201.1 en el sitio de My Oracle Support.

nota

No se admiten las versiones de nivel inferior.

Modificación de la configuración de SQLT

Después de habilitar SQLT, puede modificar la configuración de LICENSE_PACK y VERSION de la opción.

Para obtener más información acerca de cómo modificar la configuración de las opciones, consulte Modificación de una configuración de opciones. Para obtener más información acerca de cada opción, consulte Configuración de la opción SQLT.

Eliminación de la opción de SQLT

Puede eliminar SQLT de una instancia de base de datos.

Para quitar SQLT de una instancia de base de datos, realice una de las siguientes operaciones:

  • Para quitar SQLT de varias instancias de base de datos, quite la opción SQLT del grupo de opciones al que pertenecen las instancias de base de datos. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte Quitar una opción de un grupo de opciones.

  • Para quitar SQLT de una única instancia de base de datos, modifique la instancia y especifique un grupo de opciones distinto que no incluya la opción SQLT. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.