0% ont trouvé ce document utile (0 vote)
59 vues7 pages

TP1

Le document décrit un TP sur l'optimisation SQL avec Oracle, incluant la création et l'analyse d'index sur une table EMP. Il aborde les méthodes d'accès aux index, les plans d'exécution des requêtes, et les recommandations pour l'utilisation d'index appropriés selon les caractéristiques des données. Les concepts clés incluent l'utilisation d'index B-tree pour les numéros de téléphone et d'index bitmap pour la colonne Gender.

Transféré par

yassmineelmir5
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
59 vues7 pages

TP1

Le document décrit un TP sur l'optimisation SQL avec Oracle, incluant la création et l'analyse d'index sur une table EMP. Il aborde les méthodes d'accès aux index, les plans d'exécution des requêtes, et les recommandations pour l'utilisation d'index appropriés selon les caractéristiques des données. Les concepts clés incluent l'utilisation d'index B-tree pour les numéros de téléphone et d'index bitmap pour la colonne Gender.

Transféré par

yassmineelmir5
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

TP1 Oracle SQL Tuning(Hiba Benchaira – G2)

Indexes et méthodes d’accès aux indexes et tables

1. Ouvrir Oracle SQL Developper


2. Etablir une connexion avec l’utilisateur hr à la base de données enfichable pdb.
3. Exécuter ce script pour créer une table de travail EMP :
4. Trouvez tous les indexes appliqués à la table EMP et sur colonnes sont appliqués

5. Exécutez la requête suivante et afficher son plan d’exécution graphiquement :


6. Exécutez la requête SQL suivante et afficher son plan d’exécution. Qu’est ce que vous
constatez ?

Créez un nouvel index appelé « EMP_LASTNAME_IDX » sur la colonne last_name de la table EMP.
Exécutez à nouveau la requête de la question 6 et afficher à nouveau le plan d’exécution. Quelle
méthode d’accès utilisée ? Quel est le coût total d’exécution ?
7. Exécuter la requête SQL suivante et afficher son plan d’exécution. Pourquoi l’optimiseur d’oracle
a appliqué un Fast Full Scan comme méthode d’accès.

Si l'optimiseur utilise un FAST FULL SCAN au lieu de l'index, c'est généralement parce que :
- La requête demande beaucoup de lignes (faible sélectivité)
- Le FAST FULL SCAN est plus performant car il lit les blocs en parallèle
- Tous les champs nécessaires sont dans l'index (index covering)

8. Cette fois-ci, nous voulons créer un index sur le numéro de téléphone. Quel type d’index à
appliquer ? Afficher les contraintes appliquées à la table EMP ? et Insérer un nouvel
enregistrement dans la table EMP comme suit :

Pour un numéro de téléphone, un index B-tree standard est recommandé car :

- Les numéros de téléphone sont uniques


- Les recherches sont exactes

- La cardinalité est élevée

9. Exécuter la requête SQL suivante et afficher son plan d’exécution. Qu’est ce que vous
constatez ? Qu’est ce que vous recommandez pour optimiser l’exécution de cette requête ?

10. Exécuter la requête SQL suivante et afficher son plan d’exécution. Qu’est ce que vous
recommandez pour optimiser l’exécution de cette requête ?
La différence entre les deux exécutions avec et sans le prédicat hire_date montre l'importance de l'ordre
des colonnes dans un index composite.

- Avec tous les prédicats : INDEX RANGE SCAN possible

- Sans hire_date : peut-être INDEX SKIP SCAN si first_name n'est pas la première colonne de l'index
11.

Pour la colonne Gender qui n'a que deux valeurs possibles (M/F), un index bitmap serait plus approprié
qu'un index B-tree car :

- Faible cardinalité (seulement 2 valeurs distinctes)

- Bon pour les colonnes avec peu de valeurs distinctes

- Efficace pour les opérations AND/OR

```sql

CREATE BITMAP INDEX EMP_GENDER_IDX ON EMP(Gender);

```

Vous aimerez peut-être aussi