Oracle SQLT - Amazon Relational Database Service

Oracle SQLT

Amazon RDS prend en charge Oracle SQLTXPLAIN (SQLT) via l'utilisation de l'option SQLT.

L'instruction EXPLAIN PLAN Oracle peut déterminer la plan d'exécution d'une instruction SQL. Elle peut vérifier si l'optimiseur d'Oracle choisit un plan d'exécution particulier, comme une jointure de boucles imbriquées. Elle vous aide également à comprendre les décisions de l'optimiseur, par exemple, pourquoi celui-ci a choisi une jointure de boucles imbriquées plutôt qu'une jointure de hachage. EXPLAIN PLAN vous aide donc à comprendre les performances de l'instruction.

SQLT est un utilitaire Oracle qui génère un rapport. Le rapport inclut des statistiques d'objet, des métadonnées d'objet, des paramètres d'initialisation liés à l'optimiseur et d'autres informations qu'un administrateur de base de données peut utiliser pour régler une instruction SQL afin d'obtenir des performances optimales. SQLT génère un rapport HTML avec des liens hypertexte vers toutes les sections du rapport.

Contrairement aux rapports Automatic Workload Repository ou Statspack, SQLT travaille sur des instructions SQL individuelles. SQLT est un ensemble de fichiers SQL, PL/SQL et SQL* qui collectent, stockent et affichent des données de performance.

Vous trouverez, ci-après, les versions Oracle prises en charge pour chaque version SQLT.

Version SQLT Oracle 19c Oracle 18c Oracle 12c version 12.2 Oracle 12c version 12.1 Oracle 11g

12.2.180725

Pris en charge

Pris en charge

Pris en charge

Pris en charge

Pris en charge

12.2.180331

Non pris en charge

Pris en charge

Pris en charge

Pris en charge

Pris en charge

12.1.160429

Non pris en charge

Non pris en charge

Pris en charge

Pris en charge

Pris en charge

Pour télécharger SQLT et accéder aux instructions d'utilisation :

Vous pouvez utiliser SQLT avec n'importe quelle édition des versions d'Oracle Database suivantes :

  • Oracle 19c, 19.0.0.0

  • Oracle 18c, 18.0.0.0

  • Oracle 12c, 12.2.0.1

  • Oracle 12c, 12.1.0.2

  • Oracle 11g, 11.2.0.4

Amazon RDS ne prend pas en charge les méthodes SQLT suivantes :

  • XPLORE

  • XHUME

Prérequis pour SQLT

Les conditions suivantes sont requises pour utiliser SQLT :

  • Vous devez supprimer les utilisateurs et les rôles qui sont requis par SQLT, s'ils existent.

    L'option SQLT crée les utilisateurs et rôles suivants sur une instance de base de données :

    • SQLTXPLAIN user

    • SQLTXADMIN user

    • SQLT_USER_ROLE rôle

    Si votre instance de base de données comporte ces utilisateurs ou rôles, connectez-vous à l'instance à l'aide d'un client SQL et supprimez-les avec les instructions suivantes :

    DROP USER SQLTXPLAIN CASCADE; DROP USER SQLTXADMIN CASCADE; DROP ROLE SQLT_USER_ROLE CASCADE;
  • Vous devez supprimer les espaces de table qui sont requis par SQLT, s'ils existent.

    L'option SQLT crée les espaces de table suivants sur une instance de base de données :

    • RDS_SQLT_TS

    • RDS_TEMP_SQLT_TS

    Si votre instance de base de données comporte ces espaces de table, connectez-vous à l'instance à l'aide d'un client SQL et supprimez-les.

Paramètres d'option SQLT

SQLT peut utiliser les fonctions sous licence fournies par Oracle Tuning Pack et Oracle Diagnostics Pack. Oracle Tuning Pack inclut SQL Tuning Advisor, et Oracle Diagnostics Pack comprend Automatic Workload Repository. Les paramètres SQLT activent ou désactivent l'accès à ces fonctions depuis SQLT.

Amazon RDS prend en charge les paramètres suivants pour l'option SQLT.

Paramètre d'option Valeurs valides Valeur par défaut Description

LICENSE_PACK

T, D, N

N

Les Oracle Management Packs auxquels vous souhaitez accéder avec SQLT. Entrez l'une des valeurs suivantes :

  • T indique que vous possédez une licence pour Oracle Tuning Pack et Oracle Diagnostics Pack, et que vous souhaitez accéder à SQL Tuning Advisor et Automatic Workload Repository depuis SQLT.

  • D indique que vous possédez une licence pour Oracle Diagnostics Pack, et que vous souhaitez accéder à Automatic Workload Repository depuis SQLT.

  • N indique que vous ne possédez pas de licence pour Oracle Tuning Pack et Oracle Diagnostics Pack, ou que vous avez une licence pour l'un de ces packs ou les deux, mais que vous ne souhaitez pas que SQLT y accède.

Note

Amazon RDS ne fournit pas de licences pour ces Oracle Management Packs. Si vous indiquez que vous souhaitez utiliser un pack qui n'est pas inclus dans votre instance de base de données, vous pouvez utiliser SQLT avec cette instance. Toutefois, SQLT ne peut pas accéder au pack et le rapport SQLT n'inclut pas de données pour le pack. Par exemple, si vous spécifiez T, mais que l'instance de base de données n'inclut pas Oracle Tuning Pack, SQLT fonctionne sur cette instance, mais le rapport qu'il génère ne contient pas de données liées à Oracle Tuning Pack.

VERSION

2016-04-29.v1, 2018-03-31.v1, 2018-07-25.v1

2016-04-29.v1

Version de SQLT que vous voulez installer.

Note

Pour Oracle version 19.0.0.0, la seule version prise en charge est 2018-07-25.v1. Cette version est également l'option par défaut pour Oracle version 19.0.0.0.

Ajout de l'option SQLT

La procédure générale suivante permet d'ajouter l'option SQLT à une instance de base de données :

  1. Créer un groupe d'options ou copier ou modifier un groupe existant.

  2. Ajouter l'option SQLT au groupe d'options.

  3. Associez le groupe d'options à l'instance de base de données.

Une fois que vous avez ajouté l'option SQLT, dès que le groupe d'options est actif, SQLT est actif.

Pour ajouter l'option SQLT à une instance de base de données

  1. Déterminez le groupe d'options que vous voulez utiliser. Vous pouvez créer un groupe d'options ou utiliser un groupe d'options existant. Si vous souhaitez utiliser un groupe d'options existant, passez à l'étape suivante. Sinon, créez un groupe d'options DB personnalisé avec les paramètres suivants :

    1. Pour Moteur, sélectionnez l'édition d'Oracle que vous voulez utiliser. L'option SQLT est prise en charge sur toutes les éditions.

    2. Pour Version majeure du moteur, choisissez la version de votre instance de base de données.

    Pour de plus amples informations, veuillez consulter Création d'un groupe d'options.

  2. Ajouter l'option SQLT au groupe d'options. Pour de plus amples informations sur l'ajout d'options, veuillez consulter Ajout d'une option à un groupe d'options.

  3. Appliquez le groupe d'options à une instance de base de données nouvelle ou existante:

  4. (Facultatif) Vérifiez l'installation SQLT sur chaque instance de base de données avec l'option SQLT.

    1. Utilisez un client SQL pour vous connecter à l'instance de base de données en tant qu'utilisateur principal.

      Pour plus d'informations sur la connexion à une instance de base de données Oracle à l'aide d'un client SQL, consultez Connexion à une instance de base de données exécutant le moteur de base de données Oracle.

    2. Exécutez la requête suivante :

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

      La requête renvoie la version actuelle de l'option SQLT sur Amazon RDS. 12.1.160429 est un exemple de version de SQLT disponible sur Amazon RDS.

  5. Modifiez les mots de passe des utilisateurs créés par l'option SQLT.

    1. Utilisez un client SQL pour vous connecter à l'instance de base de données en tant qu'utilisateur principal.

    2. Exécutez l'instruction SQL suivante pour modifier le mot de passe de l'utilisateur SQLTXADMIN :

      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
    3. Exécutez l'instruction SQL suivante pour modifier le mot de passe de l'utilisateur SQLTXPLAIN :

      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
Note

La mise à niveau de SQLT nécessite la désinstallation d'une ancienne version de SQLT, puis l'installation de la nouvelle version. Par conséquent, toutes les métadonnées de SQLT peuvent être perdues quand vous mettez à niveau SQLT. Une mise à niveau de version majeure d'une base de données désinstalle et réinstalle également SQLT. Un exemple de mise à niveau de version majeure est une mise à niveau depuis Oracle 11g vers Oracle 12c.

Utilisation de SQLT

SQLT fonctionne avec l'utilitaire Oracle SQL*Plus.

Pour utiliser SQLT

  1. Téléchargez le fichier .zip SQLT depuis Document 215187.1 sur le site My Oracle Support.

    Note

    Vous ne pouvez pas télécharger SQLT 12.1.160429 depuis le site My Oracle Support. Oracle a supprimé cette ancienne version.

  2. Décompressez le fichier .zip SQLT.

  3. Depuis une invite de commande et accédez au répertoire sqlt/run sur votre système de fichiers.

  4. Depuis l'invite de commande, ouvrez SQL*Plus et connectez-vous à l'instance de base de données en tant qu'utilisateur principal.

    Pour plus d'informations sur la connexion à une instance de base de données à l'aide de SQL*Plus, consultez Connexion à une instance de base de données exécutant le moteur de base de données Oracle.

  5. Obtenez l'ID SQL d'une instruction SQL :

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

    Votre sortie est similaire à ce qui suit :

    SQL_ID ------------- chvsmttqjzjkn
  6. Analysez une instruction SQL avec SQLT :

    START sqltxtract.sql sql_id sqltxplain_user_password

    Par exemple, pour l'ID SQL chvsmttqjzjkn, entrez ce qui suit :

    START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password

    SQLT génère le rapport HTML et les ressources connexes sous la forme d'un fichier .zip dans le répertoire à partir duquel la commande SQLT a été exécutée.

  7. (Facultatif) Pour permettre à des utilisateurs de l'application de diagnostiquer des instructions SQL avec SQLT, accordez le rôle SQLT_USER_ROLE à chaque utilisateur avec l'instruction suivante :

    GRANT SQLT_USER_ROLE TO application_user_name;
    Note

    Oracle ne recommande pas d'exécuter SQLT avec le ou les utilisateurs SYS détenant le rôle DBA. Une bonne pratique consiste à exécuter des diagnostics SQLT à l'aide du compte de l'utilisateur d'application en octroyant le rôle SQLT_USER_ROLE à cet utilisateur.

Mise à niveau de l'option SQLT

Avec Amazon RDS pour Oracle, vous pouvez mettre à niveau l'option SQLT de la version existante vers une version ultérieure. Pour mettre à niveau l'option SQLT, effectuez les étapes 1–3 dans Utilisation de SQLT pour la nouvelle version de SQLT. Par ailleurs, si vous avez accordé des privilèges pour la version précédente de SQLT à l'étape 7 de cette section, accordez à nouveau les privilèges pour la version SQLT.

La mise à niveau de l'option SQLT entraîne la perte des métadonnées de l'ancienne version SQLT. Le schéma de l'ancienne version SQLT et les objets connexes sont supprimés, et la version SQLT la plus récente est installée. Pour de plus amples informations sur les modifications de la dernière version SQLT, veuillez consulter Document 1614201.1 sur le site My Oracle Support.

Note

Les mises à niveau vers une version antérieure ne sont pas prises en charge.

Modification des paramètres SQLT

Une fois que vous avez activé SQLT, vous pouvez modifier les paramètres LICENSE_PACK et VERSION de l'option.

Pour plus d'informations sur la modification des paramètres d'options, consultez Modification d'un paramètre d'option. Pour plus d'informations sur chaque paramètre, consultez Paramètres d'option SQLT.

Suppression de l'option SQLT

Vous pouvez supprimer SQLT d'une instance de base de données.

Pour supprimer SQLT d'une instance de base de données, exécutez l'une des actions suivantes :

  • Pour supprimer SQLT de plusieurs instances de base de données, supprimez l'option SQLT du groupe d'options auquel celles-ci appartiennent. Ce changement affecte toutes les instances de bases de données qui utilisent le groupe d'options. Pour plus d'informations, consultez Suppression d'une option d'un groupe d'options.

  • Pour supprimer l'option SQLT d'une seule instance de base de données, modifiez l'instance de base de données et spécifiez un autre groupe d'options qui n'inclut pas l'option SQLT. Vous pouvez spécifier le groupe d'options (vide) par défaut, ou un groupe d'options personnalisées différent. Pour plus d'informations, consultez Modification d'une instance de base de données Amazon RDS.

Rubriques connexes