1 / 21

Optimisation des requêtes

Optimisation des requêtes. Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07. Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr. Traitement des requêtes. Requête. Analyseur de requête. Arbre de requête. Optimiseur de requêtes. Générateur de plans. Evaluateur de plans.

Télécharger la présentation

Optimisation des requêtes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Optimisation des requêtes Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr

  2. Traitement des requêtes Requête Analyseur de requête Arbre de requête Optimiseur de requêtes Générateur de plans Evaluateur de plans Plan d’exé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 d’implémentation : Double itération Tri-fusion Hachage

  7. Evaluation de la jointure Coût = Nb de pages entrée/sortie Relation page fichier RPr n-uplets M pages SPs n-uplets N pages Exemple R = 1000, Pr = 100 S = 500, Ps = 80 * chaque page entrée/sortie 10 ms

  8. Jointure par double itérationNaï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 l’exemple !

  9. Jointure par double itérationpage à page Pour chaquepage 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 l’exemple !

  10. Jointure par double itérationbloc à bloc RAM contient B+2 pages Pour chaqueBloc 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 l’exemple !

  11. Jointure par double itérationavec 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 d’index 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 d’index - é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 d’agré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 l’arbre descendre les projection descendre les sélection - Génération de plan d’exé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 l’utilisateur

  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 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, 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)))); Projection S.A, T.C ( Selection S.B = R.B, T.D = S.D, S.C = c( R*S*T)); Optimiseur

More Related