La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Optimisation des requêtes Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN -

Présentations similaires


Présentation au sujet: "Optimisation des requêtes Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN -"— Transcription de la présentation:

1 Optimisation des requêtes Cours de Bases de Données Inge2-Info, IFIPS, Orasy Tao-Yuan JEN -

2 Traitement des requêtes Requête Analyseur de requête Arbre de requête Optimiseur de requêtes Evaluateur de plans Générateur de plans Plan dexécution

3 Opérateurs - Sélection - Projection - Jointure - Agrégations Composition des opérateurs Techniques : Itération Index Partitionnement

4 Sélection Sans index, non trié : O(N) Sans index, trié : O(log2(N)) - en général, rangement par index Index : groupant non-groupant (coûteux) Hachage : recherche avec une égalité Cas général : inefficace pour la disjunction

5 Projection - Collection des attributs - Suppression des duplications coûteux, seulement pour select distinct Tri Hachage (double) Index itération * Clé de recherche : combinaison de tous les attributs

6 Jointure Opération la plus coûteuse Catégories dimplémentation : Double itération Tri-fusion Hachage

7 Evaluation de la jointure Coût = Nb de pages entrée/sortie Relation pagefichier R Pr n-upletsM pages S Ps n-upletsN pages Exemple R = 1000, Pr = 100 S = 500, Ps = 80 * chaque page entrée/sortie 10 ms

8 Jointure par double itération Naïve Pour chaque r dans R pour chaque s dans S si r.X = s.X alors (r,s) dans Res Coût : M + Pr*M*N R : relation externe, S : relation interne 140 heures pour lexemple !

9 Jointure par double itération page à page Pour chaque page pr dans R pour chaque page ps dans S faire pr join ps dans Res Coût : M + M*N * Relation externe plus petite 501,500 pages : 1,4 heures pour lexemple !

10 Jointure par double itération bloc à bloc Pour chaque Bloc Br de B pages dans R pour chaque page ps dans S faire Br join ps dans Res Coût : M + N*(M/B) Si B = 100, alors 6000 pages : 1 minutes pour lexemple ! RAM contient B+2 pages

11 Jointure par double itération avec index Pour chaque r dans R chercher s par index dans S si r.X = s.X alors (r,s) dans Res Coût : type dindex sélectivité En général, moins coûteuse que double itération page à page

12 Applications de tri dans SGBD - Order by - Création dindex - élimination de duplication - jointure Tri externe : tri-fusion + tri rapide interne

13 Jointure par tri-fusion Trier R sur X; Trier S sur X Tri-fusionner R et S sur X Coût : M*logM + N* logN+ (M + N)

14 Jointure par hachage Etape 1 : hachage de R sur X et hachage de S sur X avec fonction h Etape 2 : Pour chaque groupe Gr de R Hachage de Gr avec une autre fonction g groupe Gs (correspond Gr)join Gr en utilisant g Coût : 2* (M + N) + (M + N)

15 Opérations dagrégat - Parcours + mise à jour des variables adaptées SUM : total AVG : total + comptage … - GROUP BY Trier sur les attributs de groupement Créer un table de hachage dans RAM

16 Optimisation - Analyseur - Arbre de requête - Réécriture de larbre descendre les projection descendre les sélection - Génération de plan dexécution choix des méthodes enchaînement ou matérialisation

17 Sous-requête imbriquée Select S.A From S Where S.B In (Select R.B From R Where R.C = c) Select S.A From S, R Where S.B = R.B And R.C = c

18 Sous-requête corrélées Select S.A From S Where Exists (Select * From R Where R.C = c And S.B = R.B) Select S.A From S, R Where S.B = R.B And R.C = c

19 Optimisation et sous-requête - Optimisation locale - Manque de connaissance déquivalence Donc, optimisation par lutilisateur

20 Réécriture - traitement des agrégats - relation externe à gauche - gauche- profond style pour la jointure de plusieurs relations - descendre la sélection et la projection

21 Traitement des agrégats Projection S.A, Min(T.C) ( Having_Count(*)=2( Group_By S.A( Selection S.B = R.B, T.D = S.D, S.C = c( R*S*T)))); Select S.A, Min(T.C) From T, S, R Where S.B = R.B And T.D = S.D And S.C = c Group By S.A Having Count (*) = 2; Projection S.A, T.C ( Selection S.B = R.B, T.D = S.D, S.C = c( R*S*T)); Optimiseur


Télécharger ppt "Optimisation des requêtes Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN -"

Présentations similaires


Annonces Google