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

1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

Présentations similaires


Présentation au sujet: "1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de."— Transcription de la présentation:

1 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de lobjet u 5. Modèle de coût u 6. Choix du meilleur plan u 7. Conclusion

2 2 EQUINOXE Communications G. Gardarin 1. ARCHITECTURE TYPE SGBD ANALYSEUR META-BASE CONTROLE OPTIMISEUR EXECUTABLE SYNTAXE SEMANTIQUE SCHEMA VUES INTEGRITE AUTORISATIONS ORDONNANCEMENT ELABORATION D'UN PLAN EXECUTION METHODES D'ACCES

3 3 EQUINOXE Communications G. Gardarin ETAPES DE L'OPTIMISATION u (1) Obtention dune représentation canonique u (2) Réécriture = transformation par : ­simplification ­ordonnancement des opérations élémentaires u (3) Planning = construction des plans d'exécution candidats ­choix des algorithmes pour chaque opérateur, ­calcul du coût de chaque plan, ­choix du meilleur plan. u Etapes 1 et 2 : indépendantes des données u Etape 3 : dépendante des données

4 4 EQUINOXE Communications G. Gardarin 2. ARBRES RELATIONNELS

5 5 EQUINOXE Communications G. Gardarin EXEMPLE D'ARBRE RESULTAT B.NOM, B.PRENOM A.DATE V.CRU "MACON" > = A.NV V.NV = VINS V = B.NB A.NB B.VILLE "MACON" BUVEURS B = ABUS A u Coût d'exécution: ­ 10 millions de buveurs dont 1 m à Paris ­10 millions d'abus dont de Volnay ­1000 vins ­10 m + 10m * 1m + 10 m * 1000 ­+ 10 m … ­de l'ordre de 10 ** 13 ­comparaisons de tuples !!!

6 6 EQUINOXE Communications G. Gardarin = R. NV V. NV R V = P.NP R.NP P = V.MILLESIME = 1976 P.REGION« Bordelais » V.DEGRE 14 V.CRU Arbre linéaire droit SELECT V.CRU FROM PRODUCTEURS P, VINS V, PRODUIT R WHERE V.MILLESIME = 1976 AND V.DEGRE 14 AND P.REGION = « BORDELAIS » AND P.NP = R.NP AND R.NV = V.NV.

7 7 EQUINOXE Communications G. Gardarin Typologie des arbres Arbre linéaire droit Arbre linéaire gauche Arbre ramifié

8 8 EQUINOXE Communications G. Gardarin Autre exemple SELECT P.NOM, SUM(L.PRIX * (1-L.DISCOUNT)) FROM CLIENTS C, COMMANDES O, LIGNES L, FOURNISSEUR F, PAYS P, CONTINENTS T WHERE C.NUMCLI = O.NUMCLI AND O.NUMCOM = L.NUMCO AND L.NUMFOU = F.NUMFOU AND C.NUMPAYS = F.NUMPAYS AND F.NUMPAYS = P.NUMPAYS AND P.NUMCONT = T.NUMCONT AND T.NOM = « EUROPE » AND O.DATE $D1 AND O.DATE < $D1 + INTERVAL 1 YEAR GROUP BY P.NOM ORDER BY RECETTE DESC ; RECETTE P.NOM, RECETTE P.NOM C.NUMCLI = O.NUMCLI O.NUMCOM = L.NUMCO $D1 O.DATE <$D1+1 L.NUMFOU = F.NUMFOU C.NUMPAYS = F.NUMPAYS F.NUMPAYS = P.NUMPAYS L C F P.NUMCONT = T.NUMCONT P T O T.NOM = « EUROPE »

9 9 EQUINOXE Communications G. Gardarin 3. RESTRUCTURATION ALGEBRIQUE u Problème : ­suivant l'ordre des opérateurs algébriques dans un arbre, le coût d'exécution est diffèrent u Pourquoi? ­1. le coût des opérateurs varient en fonction du volume des données traitées i.e., plus le nombre de tuple des relations traitées est petit, plus les coûts cpu et d'E/S sont minimisés ­2. certains opérateurs diminuent le volume des données e.g., restriction et projection

10 10 EQUINOXE Communications G. Gardarin Commutativité des Jointures RS S R

11 11 EQUINOXE Communications G. Gardarin Associativité des jointures RS T ST R u Il existe N!/2 arbre de jointure de N relations. u Parmi les jointures, certaines sont des produits cartésiens.

12 12 EQUINOXE Communications G. Gardarin Groupage des Restrictions Ai = a Aj = b Ai = a et Aj = b

13 13 EQUINOXE Communications G. Gardarin Semi-commutativité des Projections Ai = a A1, … Ap Ai = a A1, … Ap Ai, A1,… Ap u Il est possible de descendre les projections, mais les attributs utilisés dans la suite doivent être conservés !!!

14 14 EQUINOXE Communications G. Gardarin Règles de Restructuration u (1) Commutativité des jointures u (2) Associativité des jointures u (3) Groupabilité des restrictions u (4) Semi-commutativité des projections et restrictions u (5) Semi-commutativité des restrictions et jointures u (6) Semi-distributivité des projections / jointures u (7) Distributivité des restrictions / unions ou différences u (8) Distributivité des projections / unions

15 15 EQUINOXE Communications G. Gardarin Heuristique d'Optimisation u Appliquer d'abord les opérations réductrices (restrictions et projections) en les groupant sur chaque relation. ­1. Dégrouper les restrictions (Règle 3') ­2. Descendre les restrictions (Règles 4, 5 et 7) ­3. Grouper les restrictions aux feuilles (Règle 3) ­4. Descendre les projections (Règles 4, 6 et 8) u L'ordre des unions, différences et jointures reste inchangé !!!

16 16 EQUINOXE Communications G. Gardarin Exemple d'Arbre Optimisé B.NOM, B.PRENOM A.DATE V.CRU "VOLNAY" > = A.NV V.NV = V Résultat = B.NBA.NB B.VILLE"PARIS" B = A B.NB, B.NOM, B.PRENOMA.NB, A.NV V.NV B.NOM, B.PRENOM,A.NV u Coût d'exécution: u 10 m + 1m * m * … u de l'ordre de 10 ** 11 comparaisons de tuples !

17 17 EQUINOXE Communications G. Gardarin Ordonnancement des Jointures u HEURISTIQUES : ­Choix des relations de taille minimum ­Jointures pré-calculés d abord (indexes) ­Semi-jointures plus réductrices u ORDONNANCEMENT DES AGREGATS ­Permutations difficiles ­Profiter des tris des jointures, dédoublement, etc.. ­Gains importants pour MIN et MAX

18 18 EQUINOXE Communications G. Gardarin 4. LE CAS DE L OBJET u Les mêmes règles sappliquent ­cas dégénéré des objets « plats » u Il faut en plus traiter ­jointures par parcours de références ­méthodes et polymorphisme (?) ­collections (imbriquées) u Peu doptimiseurs objets puissants

19 19 EQUINOXE Communications G. Gardarin Algèbre d'objets u Lalgèbre relationnelle est étendue : ­RESTRICTION : Application d'un critère (avec méthodes) à une classe ­PROJECTION : Application d'attributs ou de méthodes à une classe ­JOINTURE_REF : Jointure par parcours de référence ­JOINTURE_VAL : Jointure par comparaison de valeurs ­NEST : Groupage d'une collection par rapport à d'autres attributs ­UNNEST : Aplatissage d'un attribut en une collection ­FLATEN : Suppression d'un niveau de collections ­UNION : Union d'objets dans une même classe ­DIFFERENCE : Suppression des objets d'une classe d'une autre classe u Langage cible d un optimiseur de requêtes OO

20 20 EQUINOXE Communications G. Gardarin Exemple de plan d'exécution Employé age() < 50 Groupe directeur ville = "Paris" couleur = "Rouge" Véhicule Fabriquant numéro u Exemple : SELECT V.numéro FROM V in Vehicule, G in V.Fabriquant, E in G.directeur WHERE E.age()) < 50 AND V.couleur = « rouge » AND G.ville = « Paris » u Plusieurs plans candidats: ­descente des projections ­sélections d'abord (?) ­ordonnancement des jointures ­coût des méthodes

21 21 EQUINOXE Communications G. Gardarin Problème de l'Ordonnancement u Il faut pouvoir ordonner jointures, union, différence, agrégat, … en fonction des tailles des relations arguments u Il faut pouvoir prendre en compte les algorithmes par index afin de les favoriser (sélection, jointure sur index, parcours) u Nécessité de développer un modèle de coût général permettant d'évaluer le coût d'un plan, c'est-à-dire d'un arbre annoté par des choix d'algorithmes. u Annotation: ­Marque associée à un noeud indiquant l'algorithme à utiliser pour l'opérateur avec ses paramètres (index, hachage, …)

22 22 EQUINOXE Communications G. Gardarin 5. MODELE DE COUT u Facteur de sélectivité ­Proportion de tuples du produit cartésien des relations touchées qui satisfont une condition. u Exemple: SELECT * FROM R1, R2 ==> s =1 SELECT * FROM R1 WHERE A = valeur ==> s = 1/NDIST(A) avec un modèle uniforme

23 23 EQUINOXE Communications G. Gardarin Sélectivité des Restrictions TAILLE ( (R)) = s * TAILLE(R) avec: s (A = valeur) = 1 / NDIST(A) s(A > valeur) = (max(A) - valeur) / (max(A) - min(A)) s(A < valeur) = (valeur - min(A)) / (max(A) - min(A)) s (A IN liste valeurs) = (1/NDIST(A)) * CARD(liste valeurs) s(P et Q) = s(P) * s(Q) s(P ou Q) = s(P) + s(Q) - s(P) * s(Q) s( not P) = 1 - s(P) u Le coût dépend de l'algorithme (index, hachage ou balayage).

24 24 EQUINOXE Communications G. Gardarin Sélectivité des Projections TAILLE( x(R)) = p(x) * (1-d) * TAILLE(R) ­avec p(x) = Larg(x) / Larg(R) ­d = probabilité de doubles ­ CARD(X) / CARD(DOM(X))**2

25 25 EQUINOXE Communications G. Gardarin Sélectivité des Jointures u TAILE( R1 |><| R2) = p * TAILLE(R1) * TAILLE(R2) ­p dépend du type de jointure et de la corrélation des colonnes : p = 0 si aucun tuple ne joint p = 1 / MAX(NDIST(A),NDIST(B)) si distribution uniforme équiprobable des attributs A et B sur un même domaine p = 1 si produit cartésien u L'algorithme change radicalement les coûts ­linéaire si index, ­produit des tailles si boucles imbriquées.

26 26 EQUINOXE Communications G. Gardarin Le calcul des tailles u Taille des tables de base dans le catalogue u Calcul des tailles à la compilation ­application du coefficient de sélectivité ­hypothèse d uniformité u Possibilité dhistogrammes ­RunStat(, ) ­Stockage dans le catalogue de lhistogramme de distribution de l attribut ­Utilisation par le modèle de coût

27 27 EQUINOXE Communications G. Gardarin 6. CHOIX DU MEILLEUR PLAN Générateur de Plans Arbre d'opérations Heuristiques de choix Plan d'exécution Optimal Schéma interne Plans d'exécution Stratégie de Recherche Bibliothèque de transformations Modèle de coût

28 28 EQUINOXE Communications G. Gardarin Sélectivité minimum Rel = liste des relations à joindre ; p = plus petite relation ; Tant que Rel non vide { R = relation de selectivité minimum de Rel ; p = join(R,p) ; Relations = Relations - R ; } ; Return(p) ;

29 29 EQUINOXE Communications G. Gardarin Programmation Dynamique PlanOuverts = liste de tous les plans mono-relation possible ; Eliminer tous les plans équivalents excepté le moins coûteux ; Pour chaque PlanOuverts p { Pour chaque opérateur nappartenant pas au plan p { Etendre le plan en ajoutant cet opérateur ; Calculer le coût du nouveau plan ; Insérer le nouveau plan dans la liste Nouveaux ; } Eliminer tous les plans équivalents excepté le moins coûteux ; Transférer les plans Nouveaux dans PlanOuverts ; } Retourner le plan optimal ;

30 30 EQUINOXE Communications G. Gardarin Illustration DP ScanR1 JoinH R2 JoinH R3 JoinS R2 JoinS R3 JoinH R2JoinS R3 JoinS R2

31 31 EQUINOXE Communications G. Gardarin Différentes Stratégies Stratégie de recherche Aléatoire Enumérative Exhaustive Augmentation Génétique Amélioration itérative Recuit simulé

32 32 EQUINOXE Communications G. Gardarin Amélioration itérative Function Iterative(Query) p:= Parse(Query) ; // Set the initial plan S := {} ; // S is the set of locally optimum plans while not StopCond() {nmoves := 0; while nmoves < MaxMoves(Query) and Transformable(p) {p' := Transform (p) ; // Apply a transformation rule if Cost(p') < Cost(p) then {p ::= p'; nmoves ::= nmoves + 1; } Insert (S, p') ; // Maintain the set of interesting plans p := Random(Parse(Query)); // Generate a new initial plan at random } return Optimal(S) ; // Select best plan among all generated ones }

33 33 EQUINOXE Communications G. Gardarin Illustration II Parse(Query) Profitable r1 Profitable r2 SELECT MINIMAL COST PLAN Profitable r'1 Profitable r"1 Profitable r"2 Rand(Parse(Query))Rand(Rand((Parse(Query)))

34 34 EQUINOXE Communications G. Gardarin 7. CONCLUSION u Problème essentiel des SGBD u Nécessité dun modèle de coût u Approches par compilation dans un langage daccès (opérateurs avec annotations) u Stratégies de choix aléatoires


Télécharger ppt "1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de."

Présentations similaires


Annonces Google