

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Oracle SQLT
<a name="Oracle.Options.SQLT"></a>

Amazon RDS prend en charge Oracle SQLTXPLAIN (SQLT) via l'utilisation de l'option SQLT. Vous pouvez utiliser SQLT avec n’importe quelle édition d’Oracle Database 19c et ultérieures.

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\$1 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 Database 21c | Oracle Database 19c | 
| --- | --- | --- | 
|  2018-07-25.v1  |  Pris en charge  |  Pris en charge  | 
|  2018-03-31.v1  |  Non pris en charge  |  Non pris en charge  | 
|  2016-04-29.v1  |  Non pris en charge  |  Non pris en charge  | 

Pour télécharger SQLT et accéder aux instructions d'utilisation :
+ Connectez-vous à votre compte My Oracle Support et ouvrez les documents suivants :
+ Pour télécharger SQLT : [Document 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=215187.1)
+ Pour des instructions d'utilisation de SQLT : [Document 1614107.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1614107.1)
+ Pour les questions fréquentes sur SQLT : [Document 1454160.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1454160.1)
+ Pour plus d'informations sur la lecture de la sortie de SQLT : [Document 1456176.1](https://support.oracle.com/epmos/main/downloadattachmentprocessor?parent=DOCUMENT&sourceId=1456176.1&attachid=1456176.1:58&clickstream=yes)
+ Pour interpréter le rapport principal : [Document 1922234.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=1922234.1)

Amazon RDS ne prend pas en charge les méthodes SQLT suivantes : 
+ `XPLORE` 
+ `XHUME` 

## Prérequis pour SQLT
<a name="Oracle.Options.SQLT.PreReqs"></a>

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
<a name="Oracle.Options.SQLT.Options"></a>

 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 : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/Oracle.Options.SQLT.html)  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.  Pour Oracle Database 19c et 21c, la seule version prise en charge est `2018-07-25.v1`. Il s'agit de la version par défaut pour ces versions.   | 

## Ajout de l'option SQLT
<a name="Oracle.Options.SQLT.Add"></a>

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.

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

1. 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. 

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

   Pour plus d'informations, consultez [Création d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Ajouter l'option **SQLT** au groupe d'options. Pour plus d'informations sur l'ajout d'options, consultez [Ajout d’une option à un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Appliquez le groupe d'options à une instance de base de données nouvelle ou existante: 
   + Pour une nouvelle instance de base de données, vous appliquez le groupe d'options lorsque vous lancez l'instance. Pour plus d'informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md). 

      
   + Pour une instance de base de données existante, vous appliquez le groupe d'options en modifiant l'instance et en attachant le nouveau groupe d'options. Pour plus d'informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

1. (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 à votre instance de base de données Oracle](USER_ConnectToOracleInstance.md).

   1. 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.

1. 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.

   1. 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;                         
      ```
**Note**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

   1. 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**  
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

**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 d’Oracle Database 19c vers Oracle Database 21c.

## Utilisation de SQLT
<a name="Oracle.Options.SQLT.Using"></a>

SQLT fonctionne avec l'utilitaire Oracle SQL\$1Plus. 

**Pour utiliser SQLT**

1.  Téléchargez le fichier .zip SQLT depuis [Document 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=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.

1.  Décompressez le fichier .zip SQLT. 

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

1.  Depuis l'invite de commande, ouvrez SQL\$1Plus 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\$1Plus, consultez [Connexion à votre instance de base de données Oracle](USER_ConnectToOracleInstance.md).

1.  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
   ```

1. 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.

1.  (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
<a name="Oracle.Options.SQLT.Upgrading"></a>

Avec Amazon RDS for 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](#Oracle.Options.SQLT.Using) 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 plus d’informations sur les modifications de la dernière version SQLT, consultez [Document 1614201.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=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
<a name="Oracle.Options.SQLT.ModifySettings"></a>

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](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption). Pour plus d'informations sur chaque paramètre, consultez [Paramètres d'option SQLT](#Oracle.Options.SQLT.Options). 

## Suppression de l'option SQLT
<a name="Oracle.Options.SQLT.Remove"></a>

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](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 

   
+ 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](Overview.DBInstance.Modifying.md). 