OPTIMIATION DE QUETION OBJECTIF ET ETAPE DE L'OPTIMIATION ANALYE YNTAXIQUE ET EMANTIQUE CONTUCTION DE PLAN CANDIDAT CHOIX DU PLAN OPTIMAL Page 2 Architecture en couche d un GBD Gestion de Mémoire Interface Analyseur sémantique Optimiseur Moteur d exécution Opérations relationnelles Méthodes d accés aux données Gestion de Verrous ystème opérationnel Gestion des Journaux Optimisation :??? Page 3 elect From Where equête QL Arbre logique Arbre Physique Page 4 Le problème : équivalence sémantique Une question Plusieurs expressions équivalentes en QL Plusieurs expressions équivalentes en algèbre Optimisation Plusieurs algorithmes algébriques équivalents Donner des exemples de requêtes équivalentes en QL
Le Problème : différence de performances Page 5 Coût Page 6 Les acteurs de l optimisation Idéalement : 2 requêtes équivalentes en QL (langage déclaratif) doivent, après l optimisation, produire le même arbre algébrique! Qui plus est, cet arbre doit être le meilleur! euls les concepteurs de GBD (noyau) doivent comprendre l optimisation et l exécution Dans la pratique : 2 requêtes équivalentes ne donnent pas toujours le même plan Le plan n est pas toujours le meilleur! l utilisateur (concepteur de l appli) devra comprendre!!! Plans sémantiquement équivalents Page 7 Les acteurs de l optimisation (suite) Utilisateur / DBA 2 3 1 Etc 3 2 1 1 equête QL Optimiseur Plan 2 2 3 3 2 2 3 3 églage / hints Exécution Objectifs de l optimisation Page 8 Trouver le meilleur plan d exécution. MEILLEU??? Donnant les résultats le + vite. Optimisation pour le temps de réponse (response time) Minimisant la consommation de ressources Optimisation du travail total (Total work) Minimisant le temps de délivrance des premiers tuples Optimisation de la latence (Latency / First tuples ) Trouver des applications pour chaque type d optimisation
ETAPE DE L'EVALUATION Analyse de la question (étape I) Page 9 Page 1 1. CONTOLE YNTAXIQUE ET EMANTIQUE 2. IMPLIFICATION DE LA EQUETE 3. DECOMPOITION EN OPEATION ELEMENTAIE ET CONTUCTION DE PLAN D'EXECUTION CANDIDAT 4. CALCUL DU COUT DE CHAQUE PLAN, CHOIX DU MEILLEU ET EXECUTION ETAPE 1,2 et 3 : INDEPENDANTE DE DONNEE ETAPE 4: DEPENDANTE DE DONNEE 1. ANALYE YNTAXIQUE VEIFIE LA YNTAXE ET LA COHEENCE DE LA QUETION PA APPOT AU CHEMA DE LA BD : > EXITENCE DE ELATION ET DE ATTIBUT 2. ANALYE EMANTIQUE VEIFIE LA COECTION EMANTIQUE DE LA QUETION ECHECHE DE QUETION EQUIVALENTE PLU IMPLE Page 11 Exemple BAE DE DONNEE : BUVEU (,NOM,PENOM,ADEE,EGION) ABU (,,DATE,QUANTITE) VIN (,CU,EGION,MILLEIME,DEGE) EQUETE : "NOM ET PENOM DE BUVEU BEANAI AYANT BU DU JUANCON DE 1976 DE DEGE < 14, LE 8 AOUT 1988" Page 12 Vérification de la correction de la question (1) NOTION 1 : GAPHE DE CONNEXION DE ELATION UN OMMET ET AOCIE A CHAQUE ELATION UNE JOINTUE ET EPEENTEE PA UN AC UNE ETICTION PA UNE BOUCLE U UNE ELATION UNE POJECTION PA UN AC VE LE NOEUD EULTAT LA QUETION ET INCOECTE I LE GAPHE ET NON CONNEXE ELECT NOM, PENOM FOM VIN V, ABU A, BUVEU B WHEE V.MILLEIME 1976 AND V.DEGE < 14 AND V.CU "JUANCON" AND A.DATE > "88-8-8" AND B.EGION "BEAN" AND B. A. AND A. V. A.date>"88.8.8" A ésultat B.V. NOM, PENOM B A.V. V B.région"Béarn" V.degré<14 & V.cru"Jurançon"
Vérification de la correction de la question (2) Page 13 NOTION 2 : GAPHE DE CONNEXION DE ATTIBUT Vérification de la correction de la question (3) Page 14 EXEMPLE : UN OMMET ET AOCIE A CHAQUE EFEENCE D'ATTIBUT OU DE CONTANTE, c UN AC DE LA FOME X Y EPEENTE X < Y + c, UNE EGALITE ET MATEIALIEE PA DEUX AC VALUE PA, UNE QUETION ET CONTADICTOIE I ON GAPHE DE CONNEXION DE ATTIBUT PEENTE UN CYCLE DONT LA OMME DE VALUATION ET NEGATIVE V.DEGE 14 V.CU JUANCON A.DATE 88.8.8 B.EGION BEAN B. A. A. V. ELECT * FOM VIN V, ABU A WHEE V.MILLEIME 1978 AND A.DATE < 1976 AND V.MILLEIME A.DATE IL EXITE UN CYCLE DE VALUATION -2: V.MILLEIME CETTE ELECTION ET INATIFAIABLE 1978-2 A.DATE 1976 Page 15 Questions équivalentes (étape II) Questions équivalentes : Utilisation de la logique Page 16 EXEMPLE : EQUETE INITIALE : NOTION 3 : QUETION EQUIVALENTE DEUX QUETION ONT EQUIVALENTE I ELLE DONNENT LE MEME EULTAT POU TOUTE EXTENION DE LA BAE DE DONNEE ELECT * FOM VIN V WHEE ((V.DEGE 12) O (V.CU 'MOGON') O (V.CU 'CHENA')) AND NOT ((V.CU 'MOGON') O (V.CU 'CHENA')) P Q Q CITEE : ((P Q ) NOT (Q )) <> (P NOT (Q )) 2 MOYEN : UTILIATION DE LA LOGIQUE DE PEDICAT UTILIATION DE CONTAINTE D'INTEGITE EQUETE EQUIVALENTE IMPLIFIEE : ELECT * FOM VIN V WHEE (V.DEGE 12) AND NOT ((V.CU 'MOGON') O (V.CU 'CHENA')) P Q Pourquoi l utilisateur écrirait-il une requête idiote comme celle ci?
Utilisation des contraintes d'intégrité (1) Utilisation des contraintes d'intégrité (2) Page 17 Page 18 PINCIPE : ETANT DONNE : - UNE QUETION DE QUALIFICATION Q - UN ENEMBLE DE CONTAINTE D'INTEGITE {I1, I2, In} I Q ET CONTADICTOIE AVEC L'UNE AU MOIN DE CONTAINTE Ii, ALO LA QUETION A UNE EPONE VIDE. EXEMPLE : EQUETE UTILIATEU : ELECT * FOM VIN WHEE CU 'JUANCON' AND DEGE < 1 CONTAINTE D'INTEGITE U VIN : CU 'JUANCON' DEGE > 12 EQUETE MODIFIEE : ELECT * FOM VIN WHEE CU 'JUANCON' AND DEGE < 1 AND DEGE > 12 pas de réponse possible Utilisation des contraintes d'intégrité (3) Construction et choix du meilleur plan Page 19 Page 2 Une contrainte d'intégrité peut également servir à compléter le critère de la requête utilisateur afin de profiter d'index LOQUE LA EQUETE ET COECTE, LE BUT ET D'AOCIE UN PLAN D'EXECUTION A LA EQUETE, AFIN QUE LE COUT D'EXECUTION OIT MINIMUM. EXEMPLE : Index secondaire déclaré sur l'attribut Vin.degré CONTAINTE D'INTEGITE U VIN : CU 'JUANCON' > DEGE > 12 EQUETE UTILIATEU : EQUETE MODIFIEE : ELECT * ELECT * FOM VIN FOM VIN WHEE CU 'JUANCON' WHEE CU 'JUANCON' AND DEGE > 12 2 METHODE : LA ETUCTUATION ALGEBIQUE L'EVALUATION DE PLAN EMAQUE : CE DEUX METHODE NE ONT PA EXCLUIVE
Page 21 Importance du choix du meilleur plan (1) Page 22 Importance du choix du meilleur plan (2) DITIBUTION DE DONNEE DAN LA BAE : BAE DE DONNEE : BUVEU (,NOM,PENOM,ADEE,EGION) ABU (,,DATE,QUANTITE) VIN (,CU,EGION,MILLEIME,DEGE) EQUETE : "NOM DE BUVEU BEANAI AYANT BU DU JUANCON EQUETE QL : ELECT NOM,, DATE FOM VIN V, ABU A, BUVEU B WHEE B. A. AND A. V. AND V.CU "JUANCON" AND B.EGION "BEAN" 1 BUVEU DONT 5 ONT BEANAI (2 pages) 5 VIN DONT 5 ONT DE CU JUANCON (5 pages) 2 ABU (2 pages) ON UPPOE UNE EQUI-EPATITION DE DONNEE EN MOYENNE 2 ABU PA BUVEU ET 4 ABU PA VIN 1 TUPLE EULTAT DE LA EQUETE INFOMATION U LE TOCKAGE 1 PAGE DIQUE PEUT CONTENI : - 5 BUVEU OU 5 NOM - 1 VIN OU 1 ABU TOUTE LE ELATION ONT TIEE U CLE COUT DU TI D'UNE ELATION DE N PAGE 2N LOG N 2 Page 23 Importance du choix du meilleur plan (3) TATEGIE 1: EXECUTE LE OPEATION DAN L'ODE DE LA EQUETE EXECUTE LE JOINTUE PA PODUIT CATEIEN 1ère PHAE : JOINTUE BUVEU >< ABU >< VIN NOMBE DE PAGE LUE (1/5) * (2/1) * (5/1) 2 * 2 * 5 2. E/ NOMBE DE PAGE ECITE 2 TUPLE EULTAT 8 PAGE 8E/ 2ème PHAE : ETICTION PUI POJECTION 8 LECTUE + 1 ECITUE 81 E/ Page 24 Importance du choix du meilleur plan (4) TATEGIE 2: EXECUTE LE OPEATION DAN L'ODE DE LA EQUETE EXECUTE LE JOINTUE PA TI-FUION 1ère PHAE : JOINTUE (BUVEU >< ABU) TEMP1 NOMBE DE PAGE LUE (1/5) + (2/1)) 2 + 2 22 E/ NOMBE DE PAGE ECITE 2 TUPLE EULTAT 67 PAGE 67E/ TOTAL > 2. E/
Page 25 Importance du choix du meilleur plan (5) 2ème PHAE : TI DE TEMP1 U 2 * (67LOG 2 67) 2 * 67 * 1 13.4 E/ 3ème PHAE : JOINTUE TEMP1 >< VIN NOMBE DE PAGE LUE (67) + (5/1) 72 E/ NOMBE DE PAGE ECITE 2 TUPLE EULTAT 8 PAGE 8E/ Page 26 Importance du choix du meilleur plan (6) TATEGIE 3: EXECUTE LE ETICTION AVANT LE JOINTUE EXECUTE LE JOINTUE PA PODUIT CATEIEN 1ère PHAE : ETICTION BUVEU TEMP1 NOMBE DE PAGE LUE NOMBE DE PAGE ECITE (1/5) 2 E/ 5 TUPLE EULTAT 1 PAGE 1 E/ 4ème PHAE : ETICTION PUI POJECTION 8 LECTUE + 1 ECITUE 81 E/ TOTAL 16.611 E/ 2ème PHAE : ETICTION VIN TEMP2 NOMBE DE PAGE LUE NOMBE DE PAGE ECITE (5/1) 5 E/ 5 TUPLE EULTAT 5 PAGE 5 E/ Importance du choix du meilleur plan (7) ABE ELATIONNEL (étape III) Page 27 Page 28 3ème PHAE : JOINTUE TEMP1 >< ABU >< TEMP2 ETICTION POJECTION V., V.CU NOMBE DE PAGE LUE 1 * (2/1) * 5 1. E/ NOMBE DE PAGE ECITE 1 TUPLE EULTAT 4 PAGE 4 E/ TOTAL 18 E/ JOINTUE PODUIT CATEIEN V. CU "BEAUJOLAI".a.b X DIFFEENCE UNION _ U
Exemple (1) Exemple (2) Page 29 Page 3 "Donner les noms et les prénoms des buveurs habitant Paris qui ont bu du Mâcon 1977 après le 15/5/88" B A V B A V B A V VILLE "Paris" DATE> "15/5/88" CU "Mâcon" ^ MIL 1977 VILLE "Paris" DATE > "15/5/88" CU "Mâcon" ^ MIL 1977 CU "Mâcon" ^ MIL 1977 ^ VILLE "Paris" ^ DATE > "15/5/88" NOM PENOM NOM PENOM NOM PENOM Attention, les arbres se présentent généralement dans l autre sens! De ces trois arbres, quel est le meilleur?? Page 31 estructuration algébrique Commutativité/Associativité des Jointures Page 32 POBLEME : UIVANT L'ODE DE OPEATEU ALGEBIQUE DAN UN ABE, LE COUT D'EXECUTION ET DIFFEENT POUQUOI? 1. LE COUT DE OPEATEU VAIENT EN FONCTION DU VOLUME DE DONNEE TAITEE i.e., PLU LE NOMBE DE TUPLE DE ELATION TAITEE ET PETIT, PLU LE COUT CPU ET D'E/ ONT MINIMIE T T 2. CETAIN OPEATEU DIMINUENT LE VOLUME DE DONNEE e.g., ETICTION ET POJECTION
Page 33 Groupage des estrictions Page 34 emi-commutativité des Projections / Ai a Ai a Ai, A1, Ap Ai a et Aj b A1, Ap Ai a Aj b Il est possible de remonter les projections, mais les attributs utilisés dans la suite doivent être conservés!!! A1, Ap Page 35 ègles de estructuration Page 36 Heuristique d'optimisation (étape IV) (1) COMMUTATIVITE DE JOINTUE (2) AOCIATIVITE DE JOINTUE (3) GOUPABILITE DE ETICTION (4) EMI-COMMUTATIVITE DE POJECTION ET ETICTION (5) DITIBUTIVITE DE ETICTION / JOINTUE (6) EMI-DITIBUTIVITE DE POJECTION / JOINTUE (7) DITIBUTIVITE DE ETICTION / UNION OU DIFFEENCE (8) DITIBUTIVITE DE POJECTION / UNION Appliquer d'abord les opérations réductrices (restrictions et projections) en les groupant sur chaque relation. 1. Dégrouper les restrictions (ègle 3') 2. approcher les restrictions des feuilles (ègles 4, 5 et 7) 3. Grouper les restrictions aux feuilles (ègle 3) 4. approcher les projections des feuilles (ègles 4, 6 et 8) L'ordre des unions, différences et jointures reste inchangé!!!
Page 37 Exemple d'optimisation Page 38 Problème de l'ordonnancement B A V CU "Mâcon" ^ MIL 1977 ^ VILLE "Paris" ^ DATE > "15/5/88" NOM PENOM NOM PENOM B A V VILLE "Paris" NOM PENOM DATE > "15/5/88" NOM PENOM CU "Mâcon" ^ MIL 1977 Il faut pouvoir ordonner jointures, union, différence, agrégat, en fonction des tailles des relations arguments Il faut pouvoir prendre en compte les algorithmes par index afin de les favoriser (sélection, jointure sur index) 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. Annotation: Marque associée à un noeud indiquant l'algorithme à utiliser pour l'opérateur avec ses paramètres (index, hachage, ) Page 39 CHOIX DU MEILLEU PLAN Page 4 Différentes tratégies Graphe d'opérations chéma interne earch trategy Plans d'exécution (espace de recherche) Générateur de Plans Bibliothèque de transformations Enumerative andomized tatégie de echerche Modèle de coût Heuristiques de choix Exhaustive Augmentation Heuristic Iterative Improvement imulated Annealing Genetic Plan d'exécution Optimal
Page 41 Espace de recherche Page 42 Jointure par hachage des relations et Les opérations binaires ne sont pas symétriques (au niveau de l exécution) Notion de pipeline / matérialisation Notion de relation externe / interne Notion de lien bloquant / non bloquant Différentes formes d arbres sont possibles. Influence sur La consommation mémoire Le mode d exécution et donc les performances can1 Build Probe can2 table de hachage Test Insertion dans la table de hachage Test avec la table de hachage Décrire l algo par hachage. Page 43 Pipeline simple / Pipeline non bloquant Arbre de type linéaire droit (right deep tree) Page 44 Probe 3 table de hachage Test Insertion dans la table de hachage Test avec la table de hachage table de hachage Test table de hachage U T Build 3 can U Build 2 Probe 2 Probe 1 can T Build 1 can can Applications?? Calculer la taille mémoire nécessaire
Arbre de type linéaire gauche (left deep tree) Page 45 Page 46 Arbre de type bushy (bushy tree) Probe 3 Probe 3 T U Build 3 Build 2 Probe 2 can T can U Build 3 Probe 1 Build 2 Probe 2 can U Build 1 Probe 1 can T U Build 1 can can T can can Calculer la taille mémoire nécessaire Calculer la taille mémoire nécessaire Ordre de grandeur Optimisation physique Page 47 Page 48 Jointure de 5 relations: (avec produits cartésiens) 12 arbres linéaires différents 162 arbres bushy différents Jointure de 1 relations: (avec produits cartésiens) 3 628 8 arbres linéaires différents 17 643 225 6 arbres bushy différents!!! Choix des meilleurs algorithmes pour les opérations relationnelles Utilisation des indexs jointure par index, nested loop, etc... En fonction de tructures de données existantes tatistiques sur les relations Algorithmes existant
Modèle de coût Le calcul des tailles Page 49 Page 5 Paramêtres d entrée machine (puissance, disques, mémoire, réseau, etc..) Arbre d exécution Algorithmes relationnels chéma de la base tatistiques sur les relations Taille, Domaine, Nb valeurs distinctes,épartition,histogrammes Traitement Evaluation de la taille des résultats intermédiaires Evaluation du coût ortie Un coût en termes d I/O, CPU, etc... ou un coût global 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 untat(<table>, <attribut>) tockage dans le catalogue de l histogramme de distribution de l attribut Utilisation par le modèle de coût électivité de prédicats simples, complexes, de jointure (différents cas) Jointures par boucles imbriquées (coût I/O) Jointure avec index/ tri-fusion Page 51 Page 52 Hypothèse 1: Mémoire ( m )> Plus petite relation ( ) + 2 Lire > I/O Lire page à page et joindre > I/O Total : + I/O Hypothèse 2: Mémoire ( m ) < Plus petite relation ( ) Lire M - 2 pages de Lire page à page et joindre > I/O ecommencer jusqu à fin de Total : /( m - 2) x + I/O Hypothèse 3: Mémoire 3 pages!!! Lire page à page Lire page à page et joindre > I/O Total : x + I/O Jointure avec index i il existe un index sur l attribut de jointure et I LA ELATION INDEXEE TIEN EN MEMOIE!!! Lire une page de Parcourir l index et trouver l(es) attributs joignant Jointures par tri-fusion Trier les 2 relations Joindre avec 2 pointeurs en parallèle...
emi-jointures Optimisation dynamique Page 53 Page 54 Principe: On projette sur l attribut de jointure (sans doublons) dans On lit et on ne retiens que les tuples existant dans On joint les tuples résultat avec Intérêt? Normalement l optimisation se fait à la compilation. Le coût n est pas imputé à l utilisateur Optimisation des requêtes fréquemment posées On peut prendre son temps (dans une certaine mesure) L optimisation dynamique propose de compléter l optimisation statique juste avant l exécution pendant l exécution Optimisation parallèle Optimisation parallèle Page 55 Page 56 tratégie two phase optimization hypothèse: Le meilleur plan parallèle est une parallélisation du meilleur plan séquentiel simple tratégie one phase optimization On produit un espace de recherche contenant des plans parallèles Explosion de l espace de recherche Complexe (modèle de coût) Problèmes Localisation des relations Localisation des opérateurs Degré de parallélisme? cheduling?? elect... from... where... Query Blocking edge Pipelinable edge Pipeline chain Join tree T Build 2 can 2 Probe 2 Operator homes Build 1 can 1 Probe 1 can 3 Operator Tree Operator cheduling Hash constraints : Build1<Probe1, Build2<Probe2 Heuristic 1: Build2<can3, Build1<can3 Heuristic 2: Build2<can1 home(can1, Build1) Node A home(can2, Build2) Node B home(can3, Probe 1, Probe2) Node A,B
Optimisation distribuée Prise en compte de fonctions Page 57 Page 58 Même type de problématique que pour le parallélisme... Arbre d opérateur Localisation des opérateurs cheduling des opérateurs Dans un contexte différent Coût réseau importants Duplications fréquente Fragmentation vetricale et horizontale Techniques complexes (voir Ozsu/Valduriez) Modélisation des fonctions emet en cause certains principes et heuristiques Nécessite de nouveaux opérateurs i les fonctions sont coûteuses, nécessite de prendre en compte de nouvelles techniques Cache Parallélisme Problème ouvert Etude de cas Exécution distribuée de requêtes QL incluant des fonctions chères et manipulant des objets volumineux (BLOB s) Page 6 Etude de cas But : Appliquer les notions introduites sur un cas original dans un contexte différent Contexte : Exécution distribuée de requêtes QL incluant des fonctions chères et manipulant des objets volumineux (BLOB s) Problèmes : Optimisation de ces requêtes??? Exécution efficace???
Exemple : Architecture Exemple : cenario Page 61 Client Page 62 ite de io: Brasilia server Table P contenant les pollutions mesurées : P(regId:int, date:int, value:double, ) Table V contenant des images (raster) de regions io server Data (P,V) Distributed Query Processing ao Paulo server Paris server Function (CV) ite de ao Paulo: V(regId:int, image:blob, ) Fonction CP permettant de calculer des indices de pollution en fonction des données brutes : function CP(double) double Function (CP) ite de Paris: Fonction CV permettant de calculer la couverture végétale sur une image raster. function CV(Blob) double Exemple : equête Exemple : Paramètres Page 63 Page 64 elect P.regId, CP(P.value), CV(V.image) From P, V Where P.regId V.regId and CP(P.value) > 1.5 and CV(V.image) <.3 Name Description Value CardP Cardinality of relation P 3 tuples DistP Number of distinct pollution measurements in P 15 measurements CardV Cardinality of relation V 5 tuples DistV Number of distinct images in V 5 images CardV P Cardinality of the result of V join P 2 tuples DistP_V P Number of distinct pollution measurements in V join P 1 measurements DistV_V P Number of distinct images in V join P 4 images ImgTrans Average image transfer time (with a 1Mb/s network bandwidth) 1 s CostCP Average per tuple cost of function CP 3 s CostCV Average per tuple cost of function CV 2 s σ pp Average selectivity for predicate p p (CP (P. value) > 1.5).5 σ pv Average selectivity for predicate p v (CV (V. image) <.3).8