CY Cergy Paris Université
Master Informatique M1
Bases de données avancées
Travaux pratiques : optimisation
Lancez SQLDeveloper et connectez-vous à la base de données, créée en suivant les
indications présentes dans le fichier DatabasePreparation.pdf.
Pour rappel, votre base de données consiste en deux tables, CLIENT et OCCUPATION.
CREATE TABLE CLIENT ( CREATE TABLE OCCUPATION (
CLI_ID NUMBER(5,0), CHB_ID NUMBER(3,0),
TIT_CODE VARCHAR2(10), JOUR VARCHAR2(10),
CLI_NOM VARCHAR2(30), CLI_ID NUMBER(3,0),
CLI_PRENOM VARCHAR2(30), NB_PERS NUMBER(2,0),
CLI_ENSEIGNE VARCHAR2(50)); RESERVE NUMBER(1,0) );
• OCCUPATION décrit l’occupation des chambres d’un hôtel : ID de la chambre, jour
de l’occupation de la chambre (date sous forme de chaîne de caractères), ID du client,
le nombre de personnes dans la chambre et une indication (0 ou 1) sur la réservation
préalable ou non de la chambre.
• CLIENT décrit les clients de l’hôtel : ID client, le titre (M., Mme. ou Mlle.), le nom et
le prénom du client, ainsi que l’entreprise qu’il représente.
A. Exprimez les requêtes suivantes dans la fenêtre d’exécution (celle qui porte votre nom de
connexion) et obtenez le plan d’exécution en plaçant le curseur sur la requête et en
appuyant sur F10 (ou en appuyant sur le bouton « Plan d’explication » au-dessus de cette
fenêtre). Expliquez à chaque fois brièvement le plan d’exécution proposé par le système
(types d’accès aux tables/index, types de jointure, coût du plan). Attention à ne pas
introduire des jointures inutiles dans vos requêtes !
1. Le nom et prénom du client numéro 5.
2. Les jours où le client numéro 5 a occupé une chambre.
3. Les chambres occupées le 22/01/1999.
4. Le nom et prénom des clients ayant pris une chambre le 22/01/1999.
B. Créez les index sur CLIENT.CLI_ID, OCCUPATION. CLI_ID et OCCUPATION.JOUR,
en respectant le type d’index unique ou non-unique. Exécutez les mêmes requêtes et
expliquez les nouveaux plans, s’ils changent par rapport au point A. Si le plan ne change
pas, expliquez la raison la plus probable pour la non-utilisation de l’index.
C. Expliquez les plans qui changent (et la raison probable) après avoir recueilli des
statistiques sur les tables (menu clic bouton droit sur chaque table, rubrique Statistiques >
Collecter les statistiques). Utiliser un échantillonnage à 30% pour les statistiques.
A rendre : Un document contenant pour chaque plan différent des points A, B, C, un fichier
HTML le représentant (obtenu avec la fonction Exporter en HTML du menu clic droit sur la
fenêtre du plan). Pour chacun des 12 cas (4 requêtes * 3 contextes), donner la brève
explication du plan demandée. À soumettre par mail à la fin du TP (au plus tard 15 minutes
après la fin du TP).