1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Optimisation des requêtes
Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Material/Sources: Daniel Bardou, Julie Dugdale &
Bases de données : modèlisation et SGBD
Fonctionnalités des SGBD
Algèbre relationnelle
Optimisation algébrique de requêtes relationnelles

Bases de données orientées-objets
Optimisation de Requêtes
INTEGRITE ET BD ACTIVES
LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE)
SGBDR : LA GESTION DES VUES
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Cours SQL.
Optimisation de Requêtes
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Cours N°4 Base de Données & Langage SQL
LMD: Langage de Manipulation de Données
Contrôles d'accès aux données
LE LANGAGE SQL Langage de manipulation de données (LMD)
Algèbre relationnelle
Modélisation E/R des Données
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Bases de données et SGBD relationnels
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Algèbre relationnelle et SQL
SQL Partie 3 : (LID : Langage d'interrogation de données)
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Optimisation des Requêtes Relationnelles
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
Manipulation des données Requêtes simples
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Chapitre 5 : Le langage SQL
Algèbre Relationnelle : Implémentation
Traduction des opérations sous MySQL
Bases de Données Avancées
Le langage de requêtes SQL
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
Bases de Données Relationnelles
Mini-SGBD Implémentation des opérateurs algébriques Yohann HUBERT Christophe PANNEAU Licence informatique Année Maître de stage : M. KHAYATA.
OPTIMISATION Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
1 J. PHILIPP d'après G. Gardarin SGBDR : la gestion des vues l 1. Contexte l 2. Vues externes l 3. Interrogation des vues l 4. Mises à jour des vues l.
22/04/2015© Robert Godin. Tous droits réservés.1 10 Évaluation des requêtes relationnelles n SQL – QUOI n Évaluateur de requêtes du SGBD – COMMENT – en.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Les bases de données Séance 8 Jointures.
Introduction aux Bases de Données et au langage SQL
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Cours n°2 Implémentation et exploitation
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Base de données Magasins.accdb
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Langage de manipulation de données (LMD)
Transcription de la présentation:

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

2 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 G. Gardarin ETAPES DE L'OPTIMISATION  (1) Obtention d’une représentation canonique  (2) Réécriture = transformation par : simplification ordonnancement des opérations élémentaires  (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.  Etapes 1 et 2 : indépendantes des données  Etape 3 : dépendante des données

4 G. Gardarin 2. ARBRES RELATIONNELS

5 G. Gardarin EXEMPLE D'ARBRE RESULTAT B.NOM, B.PRENOM A.DATE V.CRU "VOLNAY" > = A.NV V.NV = VINS V = B.NB A.NB B.VILLE"PARIS" BUVEURS B = ABUS A  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 * m … de l'ordre de 10 ** 13 comparaisons de tuples !!!

6 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 G. Gardarin Typologie des arbres Arbre linéaire droit Arbre linéaire gauche Arbre ramifié

8 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 G. Gardarin 3. RESTRUCTURATION ALGEBRIQUE  Problème : suivant l'ordre des opérateurs algébriques dans un arbre, le coût d'exécution est diffèrent  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 G. Gardarin Commutativité des Jointures RS S R

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

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

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

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

15 G. Gardarin Heuristique d'Optimisation  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)‏  L'ordre des unions, différences et jointures reste inchangé !!!

16 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  Coût d'exécution:  10 m + 1m * m * …  de l'ordre de 10 ** 11 comparaisons de tuples !

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

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

19 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)‏  Le coût dépend de l'algorithme (index, hachage ou balayage).

20 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

21 G. Gardarin Sélectivité des Jointures  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  L'algorithme change radicalement les coûts linéaire si index, produit des tailles si boucles imbriquées.

22 G. Gardarin Le calcul des tailles  Taille des tables de base dans le catalogue  Calcul des tailles à la compilation application du coefficient de sélectivité hypothèse d ’uniformité  Possibilité d’histogrammes RunStat(, ) Stockage dans le catalogue de l’histogramme de distribution de l ’attribut Utilisation par le modèle de coût

23 G. Gardarin 5. 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

24 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) ;

25 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 n’appartenant 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 ;

26 G. Gardarin Illustration DP ScanR1 JoinH R2 JoinH R3 JoinS R2 JoinS R3 JoinH R2JoinS R3 JoinS R2

27 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é

28 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 }

29 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)))‏

30 G. Gardarin 6. CONCLUSION  Problème essentiel des SGBD  Nécessité d’un modèle de coût  Approches par compilation dans un langage d’accès (opérateurs avec annotations)‏  Stratégies de choix aléatoires