Optimisation de Requ - PowerPoint PPT Presentation

About This Presentation
Title:

Optimisation de Requ

Description:

10 millions de buveurs dont 1 m Paris. 10 millions d'abus dont 10000 ... des relations trait es est petit, plus les co ts cpu et d'E/S sont minimis s ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 31
Provided by: george558
Category:

less

Transcript and Presenter's Notes

Title: Optimisation de Requ


1
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
1. ARCHITECTURE TYPE SGBD
SYNTAXE SEMANTIQUE SCHEMA VUES INTEGRITE AUTORISA
TIONS ORDONNANCEMENT ELABORATION D'UN
PLAN EXECUTION METHODES D'ACCES
ANALYSEUR
CONTROLE
META-BASE
OPTIMISEUR
EXECUTABLE
3
ETAPES DE L'OPTIMISATION
  • (1) Obtention dune 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
2. ARBRES RELATIONNELS
5
EXEMPLE D'ARBRE
  • Coût d'exécution
  • 10 millions de buveurs dont 1 m à Paris
  • 10 millions d'abus dont 10000 de Volnay
  • 1000 vins
  • 10 m 10m 1m 10 m 1000
  • 10 m 10000
  • de l'ordre de 10 13
  • comparaisons de tuples !!!

RESULTAT
B.NOM, B.PRENOM
gt
01-01-90
A.DATE

V.CRU
"VOLNAY"
V.NV
A.NV

VINS V
A.NB
B.NB


ABUS A
B.VILLE
"PARIS"
BUVEURS B
6
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.

V.CRU
V.MILLESIME 1976
V.DEGRE 14
P.REGION
Bordelais

P.NP R.NP

P
R. NV V. NV

R V
7
Typologie des arbres
Arbre ramifié
Arbre linéaire droit
Arbre linéaire gauche
8
Autre exemple
RECETTE
  • 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 lt D1 INTERVAL 1 YEAR
  • GROUP BY P.NOM
  • ORDER BY RECETTE DESC

P.NOM, RECETTE
P.NOM
C.NUMCLI O.NUMCLI O.NUMCOM L.NUMCO
L.NUMFOU F.NUMFOU
L
C.NUMPAYS F.NUMPAYS
C
F.NUMPAYS P.NUMPAYS
F
P.NUMCONT T.NUMCONT
D1 O.DATE ltD11
P
T.NOM EUROPE
O
T
9
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
Commutativité des Jointures
R
S
R
S
11
Associativité des jointures
  • Il existe N!/2 arbre de jointure de N relations.
  • Parmi les jointures, certaines sont des produits
    cartésiens.

12
Groupage des Restrictions
Ai a
Ai a et Aj b
Aj b
13
Semi-commutativité des Projections
  • Il est possible de descendre les projections,
    mais les attributs utilisés dans la suite doivent
    être conservés !!!

14
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
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
Exemple d'Arbre Optimisé
  • Coût d'exécution
  • 10 m 1m 100000 1 m 1000
  • de l'ordre de 10 11 comparaisons de tuples !

Résultat
B.NOM, B.PRENOM
V.NV
A.NV

B.NOM, B.PRENOM,A.NV
B.NB
A.NB
V.NV

B.NB, B.NOM, B.PRENOM
A.NB, A.NV
"VOLNAY"
V.CRU


B.VILLE
"PARIS"
gt
01-01-83
A.DATE
V
A
B
17
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
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
  • gt s 1
  • SELECT
  • FROM R1
  • WHERE A valeur
  • gt s 1/NDIST(A) avec un modèle uniforme

19
Sélectivité des Restrictions
  • TAILLE (s(R)) s TAILLE(R) avec
  • s (A valeur) 1 / NDIST(A)
  • s(A gt valeur) (max(A) - valeur) / (max(A) -
    min(A))
  • s(A lt 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
Sélectivité des Projections
  • TAILLE(px(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
Sélectivité des Jointures
  • TAILE( R1 gtlt 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
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é dhistogrammes
  • RunStat(ltTablegt, ltattributgt)
  • Stockage dans le catalogue de lhistogramme de
    distribution de l attribut
  • Utilisation par le modèle de coût

23
5. CHOIX DU MEILLEUR PLAN
Schéma interne
Arbre d'opérations
Plans d'exécution
Bibliothèque de transformations
Générateur de Plans
Stratégie de Recherche
Heuristiques de choix
Modèle de coût
Plan d'exécution Optimal
24
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
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

26
Illustration DP
ScanR1
JoinS R3
JoinH R2
JoinS R2
JoinH R3
JoinH R3
JoinH R2
JoinS R3
JoinS R2
27
Différentes Stratégies
Stratégie de recherche
Enumérative
Aléatoire
Recuit simulé
Amélioration itérative
Génétique
Exhaustive
Augmentation
28
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 lt MaxMoves(Query) and
    Transformable(p)
  • p' Transform (p) // Apply a
    transformation rule
  • if Cost(p') lt 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
Illustration II
Parse(Query)
Rand(Parse(Query))
Rand(Rand((Parse(Query)))
Profitable r'1
Profitable r"1
Profitable r1
Profitable r"2
Profitable r2
SELECT MINIMAL COST PLAN
30
6. CONCLUSION
  • Problème essentiel des SGBD
  • Nécessité dun modèle de coût
  • Approches par compilation dans un langage daccès
    (opérateurs avec annotations)
  • Stratégies de choix aléatoires
Write a Comment
User Comments (0)
About PowerShow.com