550 likes | 740 Views
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 :
E N D
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 DONNEESEST 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
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'EXECUTIONAFIN 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 PARRAPPORT AU SCHEMA DE LA BD : => EXISTENCE DES RELATIONS, ATTRIBUTS, ... B/ MISE SOUS FORME STANDARD DE LA REQUETE SOUSFORME 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érenced'attribut ou de constante, Une jointure est représentée par un arc entreles 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 RELATIONSN'EST PAS CONNEXE => IL EXISTE AU MOINS UNE RELATION ISOLEE NON RATTACHEE AUX AUTRES OU BIEN 2. SON GRAPHE DE CONNECTION DES ATTRIBUTSPRESENTE UN CYCLE DONT LA SOMME DESVALUATIONS 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 * FROM VINS V, ABUS A WHERE V.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
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 * FROM VINS WHERE CRU = '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 < 10 AND DEGRE > 12 => REPONSE VIDE
3. OPTIMISATION DE QUESTION • LORSQUE LA REQUETE EST CORRECTE, LEBUT EST D'ASSOCIER UN PLAND'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 lesOPERATIONS de L'ALGEBRE RELATIONNELLE, pour FEUILLE des RELATIONS et dont les ARCS représentent les FLUX DES DONNEES Remarque : Plusieurs arbres différents permettentde 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 (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 VOLUMEDES 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 : R1 R2 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
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 FROM R1, 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 Maconaprè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 SELECT R.B FROM R,S WHERE R.A = S.A and PRED (R) => INSERT INTO T SELECT R. * FROM R, 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 CHEMIND'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 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 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 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 SELECTIONSSUR 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 : 1 + 1 + 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