• Aucun résultat trouvé

USTHB – Faculté d’Electronique et Informatique Département Informatique Administration et Tuning des BD TP Optimisation par Index et Vues Matérialisées

N/A
N/A
Protected

Academic year: 2022

Partager "USTHB – Faculté d’Electronique et Informatique Département Informatique Administration et Tuning des BD TP Optimisation par Index et Vues Matérialisées"

Copied!
2
0
0

Texte intégral

(1)

USTHB – Faculté d’Electronique et Informatique Département Informatique

Administration et Tuning des BD

TP Optimisation par Index et Vues Matérialisées

RELARQUE IMPORTANTE

Pour l'ensemble des TP, on demande de réaliser un compte-rendu du travail effectué. Ce compte-rendu comprendra un rapport (manuscrit ou réalisé sur traitement de texte) détaillant les points intéressants abordés à chaque question :

- requêtes SQL correspondant aux questions posées - résultat de l'exécution de la requête

- réponses aux questions soulevées dans le sujet,

- explication des parties non triviales des requêtes complexes, - analyse et commentaire des jeux d'essais.

1. Index

Syntaxe de création d’un index binaire sur une Table CREATE BITMAP INDEX Nom_Index_bix

ON Table (Attribut-Indexé);

[COMPUTE STATISTICS] //mise à jour des Statistiques après création

Syntaxe de création d’un index de jointure binaire sur une table selon les attributs d’autres tables.

CREATE BITMAP INDEX Nom_Index_bjix

ON Table (Table1.Attribut1, Table2.Attribut2, …) FROM Table, Table1, Table 2, …

WHERE Table.FK1 = Table1.PK1 and Table.FK2 = Table1.PK2 and ….// FK : clé etrangère, PK : Clé primaries.

[COMPUTE STATISTICS] //mise à jour des Statistiques après création 2. Vues Matérialisées

Syntaxe de création d’une vue matérialisée

CREATE MATERIALIZED VIEW Nom_de_la_vue //nom de la vue BUILD IMMEDIATE //créer immédiatement la VM REFRESH COMPLETE //mise à jour de la vue.

ENABLE QUERY REWRITE //activer la réécriture de la vue

AS Requête_Select // requête permettant de calculer la vue.

Remarque :

a) Pour activer l’affichage du plan d’exécution, utiliser la commande : SET AUTOTRACE ON b) Pour vider tous les buffers partagés (ALTER SYSTEM FLUSH SHARED_POOL)

c) Pour vider le cache de données (ALTER SYSTEM FLUSH BUFFER_CACHE).

d) Pour forcer l’utilisation d’un index, on utilise un HINT index dans la clause select. Un hint a la forme suivante : /*+ hint(argument-1 argument-2) */.

• Par exemple SELECT /*+ index(PRODLEVEL Family_idx) */ from Prodlevel where FAMILY_LEVEL= ‘ABDCDEF’. Forcera Oracle à utiliser l’index Family_idx pour exécuter cette requête.

(2)

Soit les requêtes Q1, Q2 et Q3 suivantes :

Q1:

SELECT sum(dollarcost) From ACTVARS A, Timelevel T Where A.TIME_LEVEL=T.TID and T.MONTHLEVEL=3

Q2 :

SELECT sum(dollarcost)

From ACTVARS A, PRODLEVEL P ,TIMELEVEL T Where A.TIME_LEVEL=T.TID and

A.PRODUCT_LEVEL=P.CODE_LEVEL and

P.CLASS_LEVEL='CI493YZ9KZUJ' and T.MONTH_LEVEL=3 Q3 :

SELECT year_Level, sum(dollarcost)

FROM ACTVARS A,CUSTLEVEL C,PRODLEVEL P ,TIMELEVEL T WHERE

A.CUSTOMER_LEVEL=C.STORE_LEVEL AND A.TIME_LEVEL=T.TID AND A.CHANNEL_LEVEL=CH.BASE_LEVEL AND A.PRODUCT_LEVEL=P.CODE_LEVEL AND P.CLASS_LEVEL='CI493YZ9KZUJ' AND

C.RETAILER_LEVEL='RQJNEN0UPKMQ' AND T.MONTH_LEVEL=3 AND CH.ALL_LEVEL ='EFGHIJKLMNOP' group by year_level

Remarque : il faut changer les valeurs soulignées par des valeurs existant dans la BD.

Questions

1. Exécuter chaque requête et donner son temps d’exécution.

2. Générer et expliquer le plan d’exécution de chaque requête.

3. Pour Q1

a. Créer un index binaire sur la colonne Timelevel b. Quel est le temps de création de l’index

c. Exécuter Q1, quel est son nouveau temps d’exécution.

d. Afficher son plan d’exécution et vérifier qu’Oracle a réellement utilisé l’index créé.

e. Si l’index n’a pas été utilisé, forcer son utilisation avec un Hint Index.

f. Créer un index de jointure binaire sur l’attribut Timelevel.

g. Répondre aux mêmes questions que b,c,d et e.

4. Pour Q2

a. Reprendre les mêmes questions en créant un index sur les deux attributs Class_level et Month_level

5. Pour Q3

a. Reprendre les mêmes questions en créant un index sur les quatre attributs Class_level, Month_level, Reatiler_level et All_level.

b. Créer une vue matérialisée permettant de réduire le coût de Q3.

i. Exécuter la requête après la création de la vue ii. Donner son nouveau temps et plan d’exécution c. Comparer les différentes options d’optimisation pour Q3.

Remarque : Pour activer l’affichage du temps d’exécution des requêtes dans SQL Plus, il faut exécuter la commande suivante : SET timing ON

Références

Documents relatifs

Reproduire le tableau ci-dessus et automatiser cette feuille de calcul afin qu’elle nous renvoie automatiquement le bénéfice et la valeur du stock en fonction des quantités achetés

Pour placer un point on peut soit choisir le bouton Nouveau point dans la barre d ’ icônes, puis de cliquer dans la feuille de dessin.. Un point est créé et affiché avec son nom

A l’aide du logiciel de géométrie Géogébra, tracer la courbe représentative de la fonction g.. Conjecturer alors les variations de g

Donner un plan d’exécution pour cette requête, en supposant qu'il n'y a pas d'index et que les données ne sont pas triées sur n'importe quel attribut.. Calculez le coût de ce plan

Vous voulez savoir pour chaque type de véhicule, le montant total de location ainsi que le montant total de ventes relatifs aux clients de profession "Salariés" pour

On précise le format des entrées et des sorties dans un fichier de paramétrage, appelé fichier de contrôle, créé avec un éditeur de texte.. Un fichier log donnant les résultats

Create Table Nom_Table (Définition des attributs, Partition by Range (Attribut) (v. Partition Nom_P1 Values Less Than Int1, Partition Nom_P2 Values Less

Etant donnés N athlètes (résultats), en utilisant les actions paramétrées TRANSFORMER et DECOMPOSER, écrire un algorithme qui construit un vecteur Résultats de N