+ All Categories
Home > Documents > 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres...

1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres...

Date post: 03-Apr-2015
Category:
Upload: jacqueline-langlais
View: 103 times
Download: 0 times
Share this document with a friend
Popular Tags:
34
1 G. Gardarin Optimisation de Requêtes 1. Introduction 2. Arbres relationnels 3. Restructuration algébrique 4. Le cas de l’objet 5. Modèle de coût 6. Choix du meilleur plan 7. Conclusion
Transcript
Page 1: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

1

G. Gardarin

Optimisation de Requêtes 1. Introduction 2. Arbres relationnels 3. Restructuration algébrique 4. Le cas de l’objet 5. Modèle de coût 6. Choix du meilleur plan 7. Conclusion

Page 2: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

2

G. Gardarin

1. ARCHITECTURE TYPE SGBD

ANALYSEUR

META-BASE

CONTROLE

OPTIMISEUR

EXECUTABLE

SYNTAXESEMANTIQUESCHEMA

VUESINTEGRITEAUTORISATIONS

ORDONNANCEMENTELABORATIOND'UN PLAN

EXECUTIONMETHODES D'ACCES

Page 3: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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

Page 4: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

4

G. Gardarin

2. ARBRES RELATIONNELS

PRODUIT CARTESIEN

JOINTURE

RESTRICTION

V. CRU "BEAUJOLAIS"

PROJECTION

V.NV, V.CRU

DIFFERENCE

B2B1

UNION

B1 B2

U

V

=

=A. NV V. NV

A V

A V

V

TRI

V

V.CRU, V.MILL

AGREGAT

V

V.CRU, V.MILL

COUNT(*),AVG(DEGRE)

Page 5: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

5

G. Gardarin

EXEMPLE D'ARBRE

RESULTAT

B.NOM, B.PRENOM

A.DATE

V.CRU

01-01-90

"MACON"

>

=

A.NV V.NV=

VINS V

=

B.NB A.NB

B.VILLE "MACON"

BUVEURS B

=

ABUS A

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 !!!

Page 6: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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 droitSELECT 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.

Page 7: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

7

G. Gardarin

Typologie des arbres

Arbre linéaire droit Arbre linéaire gauche Arbre ramifié

Page 8: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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

FP.NUMCONT = T.NUMCONT

P

T

OT.NOM = « EUROPE »

Page 9: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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

Page 10: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

10

G. Gardarin

Commutativité des Jointures

R S S R

Page 11: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

11

G. Gardarin

Associativité des jointures

R S

T

S T

R

Il existe N!/2 arbre de jointure de N relations. Parmi les jointures, certaines sont des produits cartésiens.

Page 12: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

12

G. Gardarin

Groupage des Restrictions

Ai = a

Aj = b

Ai = aet

Aj = b

Page 13: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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 !!!

Page 14: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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

Page 15: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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

Page 16: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

16

G. Gardarin

Exemple d'Arbre Optimisé

B.NOM, B.PRENOM

A.DATE

V.CRU

01-01-83

"VOLNAY"

>=

A.NV V.NV=

V

Résultat

=

B.NB A.NB

B.VILLE "PARIS"

B

=

A

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

V.NV

B.NOM, B.PRENOM,A.NV

Coût d'exécution:

10 m + 1m * 100000 + 1 m * 1000 + …

de l'ordre de 10 ** 11 comparaisons de tuples !

Page 17: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

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

Page 18: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

18

G. Gardarin

4. LE CAS DE L ’OBJET Les mêmes règles s’appliquent

cas dégénéré des objets « plats »

Il faut en plus traiter jointures par parcours de références

méthodes et polymorphisme (?)

collections (imbriquées)

Peu d’optimiseurs objets puissants

Page 19: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

19

G. Gardarin

Algèbre d'objets L’algèbre relationnelle est étendue :

RESTRICTION : Application d'un critère (avec méthodes) à une classe

PROJECTION : Application d'attributs ou de méthodes à une classe

JOINTURE_REF : Jointure par parcours de référence

JOINTURE_VAL : Jointure par comparaison de valeurs

NEST : Groupage d'une collection par rapport à d'autres attributs

UNNEST : Aplatissage d'un attribut en une collection

FLATEN : Suppression d'un niveau de collections

UNION : Union d'objets dans une même classe

DIFFERENCE : Suppression des objets d'une classe d'une autre classe

Langage cible d ’un optimiseur de requêtes OO

Page 20: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

20

G. Gardarin

Exemple de plan d'exécution

Employé

age() < 50 Groupe

directeur

ville = "Paris" couleur = "Rouge"

Véhicule

Fabriquant

numéro

Exemple :SELECT V.numéro

FROM V in Vehicule, G in V.Fabriquant, E in G.directeur

WHERE E.age()) < 50 AND V.couleur = « rouge » AND G.ville = « Paris »

Plusieurs plans candidats: descente des projections

sélections d'abord (?)

ordonnancement des jointures

coût des méthodes

Page 21: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

21

G. Gardarin

Problème de l'Ordonnancement 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, parcours)

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 22: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

22

G. Gardarin

5. 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

Page 23: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

23

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).

Page 24: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

24

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

Page 25: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

25

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.

Page 26: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

26

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(<Table>, <attribut>)

Stockage dans le catalogue de l’histogramme de distribution de l ’attribut

Utilisation par le modèle de coût

Page 27: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

27

G. Gardarin

6. 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

Page 28: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

28

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

Page 29: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

29

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 ;

Page 30: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

30

G. Gardarin

Illustration DP

ScanR1

JoinH R2

JoinH R3

JoinH R3

JoinS R2

JoinS R3

JoinH R2JoinS R3 JoinS R2

Page 31: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

31

G. Gardarin

Différentes Stratégies

Stratégiede recherche

AléatoireEnumérative

Exhaustive Augmentation GénétiqueAméliorationitérative

Recuitsimulé

Page 32: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

32

G. Gardarin

Amélioration itérativeFunction 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 }

Page 33: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

33

G. Gardarin

Illustration II

Parse(Query)

Profitabler1

Profitabler2

SELECTMINIMAL

COSTPLAN

Profitabler'1

Profitabler"1

Profitabler"2

Rand(Parse(Query)) Rand(Rand((Parse(Query)))

Page 34: 1 EQUINOXE Communications G. Gardarin Optimisation de Requêtes u 1. Introduction u 2. Arbres relationnels u 3. Restructuration algébrique u 4. Le cas de.

34

G. Gardarin

7. 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


Recommended