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:
Inicie sesión en su cuenta de My Oracle Support y abra los siguientes documentos:
Para descargar SQLT: documento 215187.1
Para obtener instrucciones de uso de SQLT: documento 1614107.1
Para consultar las preguntas frecuentes acerca de SQLT: documento 1454160.1
Para obtener información acerca de la lectura de la salida SQLT: documento 1456176.1
Para interpretar el informe principal: documento 1922234.1
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
usuarioSQLTXADMIN
usuarioSQLT_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 |
---|---|---|---|
|
|
|
Los paquetes Oracle Management Pack a los que desea obtener acceso con SQLT. Escriba uno de los siguientes valores:
notaAmazon 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 |
|
|
|
La versión de SQLT que desea instalar. notaPara la base de datos Oracle 19c y 21c, la única versión compatible es |
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:
Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.
Añada la opción SQLT al grupo de opciones.
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
-
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:
-
En Engine, elija la edición de Oracle que desea utilizar. La opción SQLT se admite en todas las ediciones.
-
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.
-
-
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.
-
Aplique el grupo de opciones a una instancia de base de datos nueva o existente:
-
Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte Creación de una instancia de base de datos de Amazon RDS.
-
Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.
-
-
(Opcional) Verifique la instalación de SQLT en cada instancia de base de datos con la opción SQLT.
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.
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.
Cambie las contraseñas de los usuarios que crea la opción SQLT.
Use un cliente SQL para conectarse a la instancia de base de datos como usuario maestro.
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.
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
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.
Descomprima el archivo .zip SQLT.
En un símbolo del sistema, cambie al directorio
sqlt/run
de su sistema de archivos.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.
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
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.
(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ónDBA
. Es una práctica recomendada ejecutar SQLT Diagnostics mediante la cuenta del usuario de la aplicación, concediendoSQLT_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
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.