Académique Documents
Professionnel Documents
Culture Documents
: 2022-2023
Démarrage
1. Assurez-vous que votre fichier environnement de travail (.bashrc) contient bien l’environnement
nécessaire pour l’exécution d’oracle.
2. Lancez l’interface sqlplus d’oracle.
3. Identifiez-vous avec Login&MotdePasse (fourni lors du TP) sqlplus ensuite votre login ensuite votre mot
de passe
ou
sqlplus mon_login/mon_motdepasse
1 Préparation
On supposera que la base Cinéma est créé et que les données y sont insérées. Si ce n’est pas le cas, créez la
BD Cinema à l’aide du script BDCinema.sql et insérez des données issues du fichier loadCinemaData.sql dans
les tables de cette base.
2 Analyse des requêtes
2.1 Plan d’exécution et trace
La commande set autotrace traceonly active le mode trace et permet obtenir le temps d’exécution, le plan
d’exécution et les statistiques sur la requête exécutée, sans afficher le résultat de la requête.
La commande set autotrace on explain est similaire à la précédente mais permet d’afficher le résultat de la
requête.
La commande set autotrace off désactive le mode trace.
Ainsi par exemple, pour la requête
SELECT ∗ FROM PERSON WHERE lastname LIKE ’L%’ ;
On obtient la sortie suivante :
DSIC S 3
2.2 Utilisation de l’optimiseur
Il est possible de changer la configuration de l’optimiseur Oracle à l’aide de la requête suivante pour la
session courante :
GI S1
4. Etudiez chaque plan d’exécution et comparez les plans d’exécution des requêtes pouvant être réalisées
de plusieurs manières.
5. Comparez également les plans d’exécution obtenus avec l’optimiseur statistique et l’optimiseur
syntaxique
3.2 Utilisation d’index
Repassez en optimiseur statistique et configurez la session pour un affichage du plan d’exécution et des
statistiques des requêtes.
La vue v$object_usage montre l’usage des index lors de la dernière requête exécutée. Cette vue est modifiée
dynamique lors le mode monitoring est activé sur l’index grâce à la requête suivante :
Alter index idxtitlemovie monitoring usage ;
La requête suivante désactive ce mode :
Alter index idxtitlemovie nomonitoring usage ;
1. Ajoutez un index IDXLASTNAMEPERSON sur l’attribut LASTNAME de la table PERSON.
Pour la requête suivante, activez le mode monitoring, comparez les plans d’exécution et les statistiques
avant et après introduction de l’index, et consultez également la vue
$object_usage. Qu’observez vous ?
SELECT ∗ FROM PERSON WHERE lastname LIKE ’L%’ ;
2. Ajoutez un index IDXTITLEMOVIE sur l’attribut TITLE de la table MOVIE.
3. Ajoutez un index IDXGENDERMOVIE sur l’attribut GENDER de la table MOVIE.
Exécutez les requêtes 1 et 2. Comparez les plans d’exécution et les statistiques avant et après introduction
de l’index. Qu’observez-vous ?
4. Même question avec un index BITMAP.
5. Ajoutez un index composite IDXTITLEGENDERMOVIE sur les attributs TITLE et GENDER de la table MOVIE.
Sans supprimer l’index IDXGENDERMOVIE, exécutez les requêtes 1 (testez la requête en utilisant ou
non la fonction UPPER sur la colonne GENDER) et 2. Comparez les plans d’exécution et les statistiques
avant et après introduction de l’index. Qu’observez vous ?
Modifiez la requête 1 afin de sélectionner les films dont le titre commence par S et le genre par epic.
Exécutez la nouvelle requête et comparez les plans d’exécution et les statistiques avant et après
introduction de l’index et avec les résultats précédents.
Qu’observez vous ?
Vous pouvez également comparer les résultats lors de l’utilisation de l’optimiseur syntaxique.
GI S1