0% ont trouvé ce document utile (0 vote)
21 vues2 pages

Objectif: Création Des Vues Et Des Index

Le document présente un TP sur la création de vues et d'index dans une base de données relationnelle. Les étudiants doivent réaliser plusieurs tâches, telles que la création de vues pour visualiser et mettre à jour des informations sur des films et des réalisateurs, ainsi que vérifier l'utilisation d'index à travers des requêtes SQL. Des instructions détaillées sont fournies pour chaque étape, y compris l'utilisation de la commande EXPLAIN PLAN pour analyser les performances des requêtes.

Transféré par

Sofiane SH
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues2 pages

Objectif: Création Des Vues Et Des Index

Le document présente un TP sur la création de vues et d'index dans une base de données relationnelle. Les étudiants doivent réaliser plusieurs tâches, telles que la création de vues pour visualiser et mettre à jour des informations sur des films et des réalisateurs, ainsi que vérifier l'utilisation d'index à travers des requêtes SQL. Des instructions détaillées sont fournies pour chaque étape, y compris l'utilisation de la commande EXPLAIN PLAN pour analyser les performances des requêtes.

Transféré par

Sofiane SH
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 PDF, TXT ou lisez en ligne sur Scribd

Enseignante responsable : Année Universitaire : 2023/2024

Leila Ghorbel Section : LGSI2


Enseignantes tp :
Manel Mili -- Asma Bahba – Manel Chnini Matière : Administration des bases de données

TP4

Objectif
• Création des vues et des index

Soit la base de données relationnelle suivante :


– Individu (num_ind, nom, prenom)
– Jouer (num_ind, num_film, role)
– Film (num_film, num_ind, titre, genre, annee)
– Projection (num_cine, num_film, pdate)
– Cinéma (num_cine, nom,adresse)
Travail à faire
1. Créer une vue permettant de visualiser tous les réalisateurs de film dramatique avec les
nom et prénom du réalisateur, le titre du film et l’année. Vérifier son contenu avec un
SELECT.
2. Créer la vue qui permettra de mettre à jour la colonne année de la table film. On ne veut
que les films créés avant 2021. Vérifier son contenu avec un SELECT.
3. Vérifier que vous pouvez modifier l’année du film 'le voyageur' en passant l’année à
2021 via la vue. Constater.
4. Modifier à nouveau l’année du film 'le voyageur' en rétablissant l’année à 2020. Constater.
5. Donner une solution permettant de mettre à jour les années de la table Film en vérifiant
que l’année saisie soit avant 2021.
6. Tenter de mettre à jour le film 'la quête' en mettant la valeur année à 2022. Constater.
7. On s’aperçoit qu’on a souvent besoin d’avoir des informations à partir du nom d’un
individu. On suppose que la taille de la table Individu est très importante et que les mises
à jour sont négligeables. Que faut-il faire pour accélérer les recherches ?
8. On s’aperçoit maintenant que les recherches s’effectuent le plus souvent sur le nom et le
prénom. Que préconisez-vous ?
9. On vous demande de vérifier l’utilisation de l’index en affichant le plan d’exécution des
requêtes suivantes :
I. SELECT * FROM Individu WHERE nom IS NULL;
II. SELECT * FROM Individu WHERE nom LIKE ‘L%’;
III. SELECT * FROM Individu WHERE substr(nom,1,1) = ‘L’ ;
Pour les 3 requêtes :
- Afficher le plan d’exécution à l’aide de la syntaxe suivante : EXPLAIN PLAN FOR
requête SQL à vérifier
- Afficher le résultat sous la forme d’un tableau en utilisant la table plan_table :
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY) ;

1
NB :
Vous pouvez déterminer si un index est utilisé en examinant le plan d'exécution généré
par Oracle pour votre requête. Voici comment vous pouvez le faire en utilisant la
commande EXPLAIN PLAN FOR et DBMS_XPLAN.DISPLAY :
1) Exécutez votre requête avec EXPLAIN PLAN FOR :

EXPLAIN PLAN FOR


SELECT * FROM Individu WHERE votre_condition;

Assurez-vous de remplacer votre_condition par la condition spécifique de votre requête.

2) Affichez le plan d'exécution avec DBMS_XPLAN.DISPLAY :

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

Cette requête affichera le plan d'exécution. Recherchez les informations relatives à


l'utilisation d'index dans la sortie.
Si un index est utilisé, vous verrez des opérations telles que "INDEX RANGE SCAN",
"INDEX FULL SCAN", ou "INDEX UNIQUE SCAN". Le nom de l'index sera
également indiqué.
Exemple de sortie indiquant l'utilisation d'un index :

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

| 0 | SELECT STATEMENT | | ... | ... | ... (0) | ... |


| 1 | TABLE ACCESS FULL | table | ... | ... | ... (0) | ... |

Dans cet exemple, l'opération est "TABLE ACCESS FULL", ce qui indique qu'aucun
index n'est utilisé. Si l'opération était "INDEX RANGE SCAN", cela indiquerait
l'utilisation d'un index.

3) Examinez les opérations dans la colonne "Operation" :

Si vous voyez des opérations liées aux index, cela indique que les index sont utilisés.
Les opérations telles que "TABLE ACCESS" sans mention d'index peuvent indiquer
une recherche linéaire (balayage de la table entière) sans l'utilisation d'index.

Vous aimerez peut-être aussi