OPTIMISATION Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information
SGBD RELATIONNEL LE CHOIX DU CHEMIN D'ACCES AUX DONNEES EST FAIT PAR LE SYSTEME. QUESTIONS SIMPLES : * CHOIX PEU SIGNIFICATIF * FAIBLE COUT QUESTIONS COMPLEXES : * TEMPS DE REPONSE DEPENDANT DU BON CHOIX * COUT ELEVE POUR REALISER LE BON CHOIX FAIRE LE BON CHOIX : TEMPS D'EXECUTION QUESTION OPTIMISEE + TEMPS D'OPTIMISATION ==> INFERIEUR A QUESTION NON OPTIMISEE
TRAITEMENT D'UNE REQUETE ANALYSE DE LA QUESTION - SYNTAXIQUE - SEMANTIQUE MODIFICATION DE QUESTION - LOGIQUE - FACITITES UTILISATEURS (VUES, INTEGRITE, DROITS) OPTIMISATION (PLAN D'EXECUTION) - ALGEBRIQUE - MODIFICATION DE QUESTION - EVALUATION DE PLAN
TRAITEMENT D'UNE REQUETE (2)
OBJECTIFS TRADUCTION DES REQUETES UTILISATEURS (EXPRIMEES DANS UN LANGAGE ASSERTIONNEL) DANS UNE EXPRESSION OPTIMISEE DU PLAN D'EXECUTION TROIS TECHNIQUES DE BASE * RESTRUCTURATION ALGEBRIQUE -->CLASSIQUE *MODIFICATION DE QUESTIONS -->INGRES *EVALUATION DU COUT -->SYSTEM-R
ACTEURS DEUX INTERVENANTS L'EVALUATEUR : TRADUIRE LA REQUETE UTILISATEUR EN UNE SUITE D'OPERATIONS ELEMENTAIRES DE L'ALGEBRE RELATIONNELLE. L'OPTIMISEUR : ASSOCIER A CETTE SUITE UN PLAN D'EXECUTION AFIN QUE LE COUT D'EXECUTION DE LA REQUETE SOIT MINIMUM. MOMENT DE L'OPTIMISATION COMPILATION - Optimisation a priori - Stockage dans une bibliothèque INTERPRETE : - Optimisation a chaque requête
1. ANALYSE DE LA QUESTION ANALYSE SYNTAXIQUE A/ VERIFIER LA COHERENCE DE LA QUESTION PAR RAPPORT AU SCHEMA DE LA BD : => EXISTENCE DES RELATIONS, ATTRIBUTS,... B/ MISE SOUS FORME STANDARD DE LA REQUETE SOUS FORME NORMALE CONJONCTIVE (OU DISJONCTIVE) FNC : (A1 OR A2 OR... AN) AND (B1 OR B2 OR... BN) FND : (A1 AND A2 AND... AN) OR (B1 AND B2 AND... BN)
1. ANALYSE DE LA QUESTION (2) ANALYSE SEMANTIQUE VERIFIER LA CORRECTION DE LA QUESTION GRAPHE DE CONNECTION DES RELATIONS (PAS DE RELATIONS ISOLEES): Un sommet pour chaque relation Une jointure est représentée par un arc Une sélection par une boucle sur la relation GRAPHE DE CONNECTION DES ATTRIBUTS NORMALISES (PAS DE CRITERES CONTRADICTOIRES) : Un sommet est associe a chaque référence d'attribut ou de constante, Une jointure est représentée par un arc entre les attributs participants, Une sélection par un arc entre un attribut et une constante
VERIFICATION DE LA CORRECTION DE LA QUESTION UNE REQUETE EST INCORRECTE SI 1. SON GRAPHE DE CONNECTION DES RELATIONS N'EST PAS CONNEXE => IL EXISTE AU MOINS UNE RELATION ISOLEE NON RATTACHEE AUX AUTRES OU BIEN 2. SON GRAPHE DE CONNECTION DES ATTRIBUTS PRESENTE UN CYCLE DONT LA SOMME DES VALUATIONS EST NEGATIVE => LA QUESTION EST CONTRADICTOIRE
VERIFICATION DE LA CORRECTION D'UNE QUESTION BUVEURS (NB, NOM, PRENOM, VILLE, REGION) VINS (NV, CRU, REGION, MILL, DEGRE) ABUS (NV, NB, DATE, QUANTITE) SELECT* FROMVINS V, ABUS A WHEREV.MILL = 1978 AND A.DATE < 1976 LES RELATIONS ABUS ET VINS NE SONT PAS RELIEES DANS LE GRAPHE DES RELATIONS ==> CETTE SELECTION N'EST PAS SATISFAISABLE
VERIFICATION (2)
2. MODIFICATION DE QUESTIONS DEFINITION UNE REQUETE PEUT ETRE TRANSFORMEE EN PLUSIEURS ARBRES ALGEBRIQUES (IL Y PLUSIEURS FACONS DE DEFINIR UNE REQUETE EN SQL ET EN ALGEBRE) BUT 1. METTRE LA REQUETE SOUS UNE FORME STANDARD 2. SIMPLIFIER EN ELIMINANT LES REDONDANCES 3. CONSTRUIRE UNE EXPRESSION EQUIVALENTE PLUS PERFORMANTE A EVALUER
2. MODIFICATION DE QUESTIONS (2) PRINCIPE : QUESTIONS EQUIVALENTES DEUX QUESTIONS SONT EQUIVALENTES SI ELLES DONNENT LE MEME RESULTAT POUR TOUTE EXTENSION DE LA BD 2 MOYENS : 1. CRITERES = PREDICATS DE LA LOGIQUE DU PREMIER ORDRE => LOGIQUE 2. UTILISATION DES FACILITES UTILISATEURS
FACILITES UTILISATEURS (Exemple : CONTRAINTES D'INTEGRITE) DEPART UNE QUESTIONAVEC QUALIFICATION UN ENSEMBLE DE CONTRAINTES D'INTEGRITE I1, I2,... In PRINCIPE : NON CONTRADICTION QUESTION /CONTRAINTE D'INTÉGRITÉ (DETECTION IMMEDIATE) EXEMPLE : SELECT* FROMVINS WHERECRU = 'JURANCON'AND DEGRE < 10
FACILITES UTILISATEURS (2) CONTRAINTE D'INTEGRITE SUR VINS : CRU = 'JURANCON' => DEGRE >= 12 REQUETE MODIFIEE : SELECT * FROM VINS WHERE CRU = 'JURANCON' AND DEGRE 12 =>REPONSE VIDE
3. OPTIMISATION DE QUESTION LORSQUE LA REQUETE EST CORRECTE, LE BUT EST D'ASSOCIER UN PLAN D'EXECUTION DONT LE COUT EST MINIMUM ET DONT LA DETERMINATION NE NECESSITE PAS TROP DE TEMPS. 3 METHODES 1.Restructuration algébrique 2.Décomposition de questions 3.Evaluation de plans REMARQUE : CES METHODES NE SONT PAS EXCLUSIVES
ARBRE ALGEBRIQUE ARBRE ayant pour NOEUDS les OPERATIONS de L'ALGEBRE RELATIONNELLE, pour FEUILLE des RELATIONS et dont les ARCS représentent les FLUX DES DONNEES Remarque : Plusieurs arbres différents permettent de modéliser la même requête
Restructuration algébrique "DONNER LES NOMS ET LES PRENOMS DES BUVEURS HABITANT Paris QUI ONT COMMANDE DU Mâcon 1977 AVANT LE 15/05/88"
Restructuration algébrique (2)
Restructuration algébrique (3) PRINCIPE : Suivant L'ORDRE DES OPERATEURS ALGEBRIQUES dans un arbre, LE COUT D'EXECUTION est DIFFERENT POURQUOI ? 1. LE COUT DES OPERATEURS VARIE EN FONCTION DU VOLUME DES DONNEES QU'ILS TRAITENT (PLUS LE NOMBRE DE TUPLE DES RELATIONS TRAITEES EST PETIT, PLUS LES COUTS CPU ET D'E/S SONT MINIMISES) 2. CERTAINS OPERATEURS DIMINUENT LE VOLUME DES DONNEES IL FAUT DONC : POUR CHAQUE OPERATEUR, EVALUER LA TAILLE DE LA RELATION RESULTAT, APRES APPLICATION DES OPERATEURS ALGEBRIQUES
FACTEURS LA TAILLE D'UNE RELATION R EST EGALE AU NOMBRE DE TUPLES DE R QUE MULTIPLE LA LONGUEUR DE SES TUPLES TAILLE (R) = Nb_tuples (R) * Lg (R) 1. SELECTION :a (R) TAILLE (a(R)) = p(a) * TAILLE (R) p (a) = probabilité que a soit vérifiée => PUISSANT REDUCTEUR 2. PROJECTION : x (R) TAILLE ( x (R)) = L(x) * TAILLE (R) Avec L(x) = Lg (x) / Lg (R) Sans élimination de doubles => PUISSANT REDUCTEUR
FACTEURS (2) 3. JOINTURE :R1R2 J * TAILLE (R1) * TAILLE (R2) Avec : J dépends de chaque jointure J = 0 Si aucun tuple ne joint J = 1 Si produit cartésien Nb_tuple (R1) * Nb_tuple (R2) * (Lg (R1) + Lg (R2)) => PEUT AUGMENTER LA TAILLE DE LA RELATION RESULTAT
HEURISTIQUE APPLIQUER D'ABORD TOUTES LES SELECTIONS ET PROJECTIONS MOYEN : UTILISATION DES REGLES DE RESTRUCTURATION D'OPERATEURS ALGEBRIQUES 1. PROPRIETES DES JOINTURES : (1) COMMUTATIVITE (2) ASSOCIATIVITE 2. PROPRIETES DU PRODUIT CARTESIEN : (3) COMMUTATIVITE (4) ASSOCIATIVITE
HEURISTIQUE (2) 3. PROPRIETES DES : (5) CONCATENATION DES (6) CONCATENATION DES 4. COMMUTATION DES AVEC (7)LA JOINTURE (8)LE PRODUIT CARTESIEN (9)LA PROJECTION (10)L'UNION (11)LA DIFFERENCE 5. COMMUTATION DES AVEC (12)LA JOINTURE (13)LE PRODUIT CARTESIEN (14)L'UNION
Graphiques
Graphiques (2)
Graphiques (3)
Graphiques (4)
Graphiques (5)
DECOMPOSITION DE QUESTION OUTIL : GRAPHE DES RELATIONS PRINCIPE : LE DETACHEMENT DE QUESTIONS : TRANSFORMATION CONSISTANT A DIVISER LE GRAPHE DES VARIABLES EN DEUX COMPOSANTES CONNEXES PAR DEDOUBLEMENT D'UN NOEUD. DETACHEMENT POSSIBLES : SELECTIONS, SEMI-JOINTURES
DECOMPOSITION DE QUESTION (2) SELECTIONS TOUTE SELECTION PEUT ETRE DETACHEE EXEMPLE SELECT Ai FROMR1, R2,... Rm WHERE Rj. Ai = Rk. Ai and R1. An = VALEUR INSERT INTO T SELECT * FROM R1 WHERE R1. An = VALEUR SELECT Ai FROM T, R2,... Rm WHERE Rj. Ai = Rk. Ai
DECOMPOSITION DE QUESTION (3) REQUETE : "Buveurs habitant Macon ayant bu du Macon après le 1/1/83" : Q1 : INSERT INTO V' SELECT NV FROM VINS WHERE CRU = 'MACON' Q2 : INSERT INTO A' SELECT NB FROM ABUS WHERE DATE >= "1/1/83" Q3 : INSERT INTO T SELECT NB FROM A', V' WHERE A'.NV = V'.NV Q4 : INSERT INTO B' SELECT NOM, PRENOM, NB FROM BUVEURS WHERE VILLE = 'MACON‘ Q5 :SELECT NOM, PRENOM FROM B', T WHERE BUVEUR.NB = T'.NB
DECOMPOSITION DE QUESTION (4) SEMI-JOINTURES LA SEMI-JOINTURE DE R PAR S, NOTEE R S, EST LA JOINTURE DE R PAR S, PROJETEE SUR LES ATTRIBUTS DE R R S = r (R S) TOUTE SEMI-JOINTURE PEUT ETRE DETACHEE
DECOMPOSITION DE QUESTION (5) EXEMPLE SELECTR.B FROMR,S WHERER.A = S.A and PRED (R) => INSERT INTO T SELECTR. * FROMR, S WHERE R.A = S.A SELECT T.B FROM T WHERE PRED (T)
EVALUATION DE PLANS METHODES D'EVALUATION DE COMPOSANTS DE REQUETE DE COMPLEXITE VARIABLE AVEC UN PRINCIPE DE BASE : L'EVALUATION DE LA TAILLE DES RESULTATS PROBLEME POUR CHAQUE RELATION, CHOISIR LE MEILLEUR CHEMIN D'ACCES ET LE MEILLEUR ALGORITHME DE JOINTURE
EVALUATION DE PLANS (2) ELEMENTS DISPONIBLES : 1. METHODES D'ACCES - SEQUENTIEL - INDEXE - PLACANT - NON PLACANT 2. ALGORITHMES DE JOINTURE -BOUCLES IMBRIQUEES -TRI-FUSION -HACHAGE 3. STATISTIQUES SUR LES RELATIONS ET LES INDEX
EVALUATION DE PLANS (3) METHODE D'ACCES CAS SANS INDEX - FILTRAGE EN SEQUENTIEL DU FICHIER - TRIER LA RELATION (GARDEE TRIEE) ASCENDANTE, DESCENDANTE, DICHOTOMIQUE Ex : "RANGE QUERIES" CAS AVEC INDEX - UNI-DIMENSIONNEL (ISAM, Arbre-B) - MULTI-DIMENSIONNEL (Grid File, Arbres de Prédicats)
STRUCTURE DE STOCKAGE DONNEES STOCKEES DANS DES SEGMENTS : RELATIONS STOCKEES ENTIEREMENT DANS UN SEGMENT. PLUSIEURS RELATIONS PAR SEGMENT. SEGMENTS TYPES : TEMPORAIRES, PERMANENTS. ALLOCATIONS REGROUPEES DE PAGES.
CHEMINS D'ACCES INDEX TRIES MONO OU MULTI- ATTRIBUT. INDEX BASES SUR LES ARBRES-B. EXISTANCE DES TIDs : Nro PAGE, ADR. Indirecte/Page POSSIBILITE D'AVOIR DES INDEX PLACANTS : 2 TYPES DE SEGMENTS - SEQUENTIELS AUCUN ORDRE LOGIQUE DES TUPLES - CLUSTERS LES TUPLES SONT INSERES DANS L'ORDRE D'UN INDEX (Triés ou pré- jointure)
METHODE GENERATION DE PLUSIEURS PLANS COUT COMBINATOIRE ==> TROP COUTEUX. SOLUTION ELIMINER DES PLANS A PRIORI- HEURISTIQUES- * OPTIMUM LOCAL * COMPILATION DU PLAN D'EXECUTION OBTENU * INSERER DANS UN CATALOGUE DE PLANS. PROBLEME * PLAN STATIQUE. NE TIENT PAS COMPTE DU CHANGEMENT DE TAILLES DES DONNEES. * SI LA METHODE D'ACCES CHANGE EN - : RECOMPILER LA QUESTION EN +: ON NE PEUT PAS EN PROFITER
CHOIX DES ALGORITHMES (JOINTURE) PAR BOUCLE IMBRIQUEE Pour CHAQUE PAGE DE R1 Pour CHAQUE PAGE DE R2 JOINDRE (P.R1, P.R2) Fpour COUT = R1 * R2 PAR TRI-FUSION TRIER (R1); TRIER (R2) FUSIONNER (R1, R2) COUT = 2 R1 LOG R1 + R2 LOG R2 + R1 + R2
CHOIX DES ALGORITHMES (2) JOINTURE (AVEC INDEX) SUR R1 POUR CHAQUE PAGE DE R2 LIRE (R2) POUR CHAQUE TUPLE LU ACCEDER A R1 EN INDEX JOINDRE SI SUCCES Fpour SUR R1 ET R2 -> FUSIONNER LES INDEX
CHOIX DES ALGORITHMES (3) PAR HACHAGE HACHER (R1) (+ PETITE RELATION) POUR CHAQUE PAGE DE R2 LIRE (R2) POUR CHAQUE TUPLE LU ACCEDER AU FICHIER ALEATOIRE JOINDRE SI SUCCES Fpour COUT = R1 + A R1 + R2 + A R2 PAR SEMI-JOINTURE EFFECTUER LES SEMI-JOINTURES R1 R2 ET R2 R1 AVANT JOINTURE
CHOIX DES ALGORITHMES (4) EXECUTION PARALLELE (EVITER L'ACCES REPETITIF AUX MEMES DONNEES) - EVALUATION DE TOUTES LES SELECTIONS SUR UNE RELATION EN UNE SEULE PASSE - JOINTURE EN PARALLELE A.NV = V.NV ET A.NB = B.NB LA RELATION A N'EST LUE QU'UNE SEULE FOIS - PIPELINE D'OPERATIONS: ENCHAINER SELECTION ET PROJECTION SUR UNE MEME RELATION
CHOIX DU PLAN D'EXECUTION POUR CHAQUE SOLUTION UN COUT EST CALCULE : COUT = NOMBRE D'ACCES PAGES + W * Nombre d'appels internes (W : IMPORTANCE DU TEMPS CPU PAR RAPPORT AUX E/S OU LE TEMPS DES E/S EST FONCTION DU NOMBRE DE PAGE ACCEDEES)
CHOIX DU PLAN D'EXECUTION (2) STATISTIQUES * NBTUP: Nombre de tuples * NBPAG: Nombre de pages * NBCLE: Nombre de clés * NCARD (R): Cardinalité * TCARD (R): Nombre de pages * MIN (attribut): Valeur minimum d'un attribut numérique * MAX (attribut): Valeur maximum d'un attribut numérique * ICARD (I): Nombre clés distinctes dans index * NBINDX (I) : Nombre pages de l'index * CLUSTER (I): Index plaçant ou non * RISCARD = F(PRED) * NBTUP
CALCUL DU FACTEUR DE SELECTIVITE ATTRIBUT = VALEUR ATTRIBUT > VAL VAL 1 < ATTRIBUT < VAL 2 P1 OR P2 : F = F (P1) + F (P2) – F (P1) * F (P2) P1 AND P2 : F = F (P1) * F (P2) NOT P : F = 1 - F (P)
CALCUL DU COUT TOTAL D'UNE SELECTION ACCES SUR CLE PRIMAIRE : W ACCES SUR CLE SECONDAIRE VIA UN PREDICAT P : - INDEX CLUSTERISE : F (P) * (NBINDX + TCARD) + W * RSICARD - INDEX NON CLUSTERISE : F (PRED) * (NBINDX + NCARD) + W * RSICARD ACCES SEQUENTIEL (SCAN) : TCARD + W * RSICARD TRI EVENTUEL
EXEMPLE
CALCUL DE RISCARD RSICARD F(P) = (DEGRE > 12) * F (CRU = "MORGON") * F (MILLESIME = 80) F (DEGRE > 12) = ( ) / ( )= 0,6 F (CRU = "MORGON") = 1 / 4 = 0,25 F (MILLESIME = 80) = 1 / 4 = 0,25 F (P) = 0,6 x 0,25 x 0,25 = 0,0375 RSICARD = 0,0375 * 1000 = 37
EVALUATION INDEX DEGRE -> NBCLE = 50 NBINDX = 2 COUT (IND.DEGRE) = F (IND.DEGRE) * ( ) + W * 37 = 0,6 * W * 37 = * W FACTEUR W : W = 0,2 1 E / S 20 ms 1 Appel 4 ms COUT (IND.DEGRE) = 608 INDEX CRU ->NBCLE = 4 NBINDX = 1 COUT (IND.CRU) = F (IND.CRU) * ( ) + W * 37 = 0,25 * * W COUT (IND.CRU) = 257 SCAN :20 + W * 37 = 27 COUT (SCAN) = 27
CONCLUSION LES PROBLEMES A RESOUDRE : 1. TROUVER DES HEURISTIQUES RAISONNABLES PERMETTANT DE DIMINUER LA COMBINATOIRE 2. EVALUER LES COUTS ET CHOISIR LE PLUS FAIBLE; PROBLEME : ESTIMATION DE LA TAILLE 3. PROPAGER LES CLES
CONCLUSION (2) L'APPROCHE COMPILATION * Effet considérable sur les performances. * Evaluation et chemins d'accès pris en compte lors de la compilation. * Si le contexte change : le module compile est invalide et recompilé lors de son appel (exemple : destruction d'un index)
CONCLUSION (3) * Transactions prédéfinies : * Modules déjà compiles. * L‘évaluation n'est faite qu'une fois. * Transactions interactives : * On n'exécute qu'une seule fois. * Résultat dépend de la complexité de la question. si la question est complexe on gagne a réaliser la compilation.