+ All Categories
Home > Documents > OPTIMISATION

OPTIMISATION

Date post: 05-Jan-2016
Category:
Upload: howe
View: 21 times
Download: 0 times
Share this document with a friend
Description:
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 : - PowerPoint PPT Presentation
Popular Tags:
55
OPTIMISATION Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information
Transcript
Page 1: OPTIMISATION

OPTIMISATION

Institut National des Sciences Appliquées – Rouen

Département Architecture des Systèmes d’Information

Page 2: OPTIMISATION

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

Page 3: OPTIMISATION

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 

Page 4: OPTIMISATION

TRAITEMENT D'UNE REQUETE (2)

ANALYSEUR

CONTROLE

OPTIMISEUR

ACCES

CATALOGUE

ORDONNANCEMENT ET

ELABORATION D'UN PLAN

SYNTAXE SEMANTIQUE

SCHEMA

VUES INTEGRITE

AUTORISATIONS

METHODES D'ACCESEXECUTION

Page 5: OPTIMISATION

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

Page 6: OPTIMISATION

ACTEURS

• DEUX INTERVENANTSL'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'OPTIMISATIONCOMPILATION

- Optimisation a priori- Stockage dans une

bibliothèqueINTERPRETE :

- Optimisation a chaque requête

Page 7: OPTIMISATION

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)

Page 8: OPTIMISATION

1. ANALYSE DE LA QUESTION (2)

• ANALYSE SEMANTIQUEVERIFIER 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 arcUne 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

Page 9: OPTIMISATION

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

Page 10: OPTIMISATION

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

V A

V = 1978 A < 76

Page 11: OPTIMISATION

VERIFICATION (2)

SELECT *

FROM VIN V, ABUS A

WHERE V. MILLESIME = 1978

AND A. DATE <= 1976

AND V. MILLESIME = A. DATE

0

DATE

A V

MIL

0

IL EXISTE UN CYCLE DE VALUATION

1976 - 1978 + 0 = -2

1978

-1978

1976

=> CETTE SELECTION EST INSATISFAISABLE

Page 12: OPTIMISATION

2. MODIFICATION DE QUESTIONS

•  DEFINITIONUNE REQUETE PEUT ETRE

TRANSFORMEE EN PLUSIEURS ARBRES ALGEBRIQUES (IL Y

PLUSIEURS FACONS DE DEFINIR UNE REQUETE EN SQL ET EN

ALGEBRE)

• BUT1. METTRE LA REQUETE SOUS UNE FORME STANDARD2. SIMPLIFIER EN ELIMINANT LES REDONDANCES3. CONSTRUIRE UNE EXPRESSION EQUIVALENTE PLUS PERFORMANTE A EVALUER

Page 13: OPTIMISATION

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

=> LOGIQUE2. UTILISATION DES FACILITES

UTILISATEURS

Page 14: OPTIMISATION

FACILITES UTILISATEURS (Exemple : CONTRAINTES D'INTEGRITE)

• DEPARTUNE QUESTIONAVEC QUALIFICATIONUN ENSEMBLE DE CONTRAINTES D'INTEGRITE I1, I2, ... In

• PRINCIPE :NON CONTRADICTION QUESTION

/CONTRAINTE D'INTÉGRITÉ(DETECTION IMMEDIATE)

• EXEMPLE :SELECT *FROM VINSWHERE CRU =

'JURANCON'AND DEGRE < 10

Page 15: OPTIMISATION

FACILITES UTILISATEURS (2)

• CONTRAINTE D'INTEGRITESUR VINS :

CRU = 'JURANCON' => DEGRE >= 12

• REQUETE MODIFIEE :SELECT *FROM VINSWHERE CRU = 'JURANCON'

AND DEGRE < 10AND DEGRE > 12

=> REPONSE VIDE

Page 16: OPTIMISATION

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

algébrique2. Décomposition de

questions3. Evaluation de plans

REMARQUE : CES METHODES NE SONT PAS EXCLUSIVES

Page 17: OPTIMISATION

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

Page 18: OPTIMISATION

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"

B C V

VILLE="Paris"

DATE <"15/05/88"

CRU="Mâcon"

MIL=1977

NB NB

=

=

NV NV

NOM

PRENOM

R

B C V

VILLE

="Paris"

DATE

<"15/05/88"

CRU="Mâcon"

MIL=1977

=

NV NV

=

NB NB

NOM

PRENOM

R

Page 19: OPTIMISATION

Restructuration algébrique (2)

B C V

=

NB NB

=

NV NV

CRU="Mâcon" MIL=1977 VILLE="Paris" DATE < "15/05/88"

NOM

PRENOM

R

B C V

VILLE ="Paris"

DATE

<

"15/05/88"

CRU="Mâcon"

MIL=1977

NB

NOM

PRENOM

NV NB

NV

=

NB NB

NV NOM PRENOM

=

NV NV

NOM PRENOM

R

Page 20: OPTIMISATION

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

Page 21: OPTIMISATION

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

Page 22: OPTIMISATION

FACTEURS (2)

• 3. JOINTURE : R1 R2

J * TAILLE (R1) * TAILLE (R2)Avec : J dépends de chaque

jointure

J = 0 Si aucun tuple ne jointJ = 1 Si produit cartésien 

Nb_tuple (R1) * Nb_tuple (R2) *

(Lg (R1) + Lg (R2))

=> PEUT AUGMENTER LA TAILLE DE LA RELATION RESULTAT

Page 23: OPTIMISATION

HEURISTIQUE

• APPLIQUER D'ABORD TOUTES LESSELECTIONS ET PROJECTIONS

• MOYEN :UTILISATION DES REGLES DE

RESTRUCTURATION D'OPERATEURSALGEBRIQUES

• 1. PROPRIETES DES JOINTURES :(1) COMMUTATIVITE(2) ASSOCIATIVITE 

 • 2. PROPRIETES DU PRODUIT

CARTESIEN :(3) COMMUTATIVITE(4) ASSOCIATIVITE

Page 24: OPTIMISATION

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

Page 25: OPTIMISATION

Graphiques

(1),(3) COMMUTATIVITE DES JOINTURES ET PRODUITS

<==>

R2 R1R1 R2

X X

R1 R2 R1R2

<==>

Page 26: OPTIMISATION

Graphiques (2)

(2), (4) ASSOCIATIVITE DES JOINTURES ET DES PRODUITS (R1 R2) R3 = R1 (R2 R3) (R1 X R2) X R3 = R1 X (R2 X R3) (5), (6) CONCATENATIONS DE PROJECTIONS ET DE SELECTIONS

A2

A1 A2

A1

A2 = v2

A1 = v1

<==>

<==> (A1 = v1) and (A2 = v2)

Page 27: OPTIMISATION

Graphiques (3)

(7), (8) COMMUTATION DES SELECTIONS AVEC

LES PRODUITS CARTESIENS ET LES JOINTURES

Ai = vi X <==>

X Ai = vi

R1 (.. Ai..) R2 (.. Bj..) R1 (.. Ai..)

R2 (.. Bj..)

<==> A1 = vi

A1 = vi

R1 (.. Ai..) R2 (.. Bj..) R1 (.. Ai..)

R2 (.. Bj..)

Page 28: OPTIMISATION

Graphiques (4)

(9) COMMUTATION DES SELECTIONS AVEC LES PROJECTIONS

NECESSAIRE

SI

AI A1 ... An

A1 ... An A1 ... An

AI = v1 AI = v1

A1...An AI

<==>

Page 29: OPTIMISATION

Graphiques (5)

(14) COMMUTATION DES PROJECTIONS AVEC LES UNIONS

R1(..AI..) R2(..AI..)

R1(..AI..) R2(..AI..)

A1..Ap A1..Ap

A1..Ap

<====>

Page 30: OPTIMISATION

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

Page 31: OPTIMISATION

DECOMPOSITION DE QUESTION (2)

• SELECTIONSTOUTE SELECTION PEUT ETRE

DETACHEE • EXEMPLE

SELECT AiFROM R1, R2, ... RmWHERE Rj. Ai = Rk. Ai

and R1. An = VALEUR

INSERT INTO TSELECT *FROM R1WHERE R1. An = VALEUR

 SELECT Ai

FROM T, R2, ... RmWHERE Rj. Ai = Rk. Ai

Page 32: OPTIMISATION

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 VINSWHERE CRU = 'MACON'

Q2 : INSERT INTO A' SELECT NB FROM ABUSWHERE DATE >= "1/1/83"

Q3 : INSERT INTO T SELECT NBFROM A', V'WHERE A'.NV = V'.NV

Q4 : INSERT INTO B' SELECT NOM,

PRENOM, NBFROM BUVEURSWHERE VILLE = 'MACON‘

Q5 : SELECT NOM, PRENOMFROM B', TWHERE BUVEUR.NB = T'.NB

Page 33: OPTIMISATION

DECOMPOSITION DE QUESTION (4)

• SEMI-JOINTURESLA 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

Page 34: OPTIMISATION

DECOMPOSITION DE QUESTION (5)

• EXEMPLE

SELECT R.BFROM R,S WHERE R.A = S.A

and PRED (R)=>

INSERT INTO TSELECT R. *

  FROM R, SWHERE R.A = S.A

SELECT T.BFROM TWHERE PRED (T)

Page 35: OPTIMISATION

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

• PROBLEMEPOUR CHAQUE RELATION,

CHOISIR LE MEILLEUR CHEMIN D'ACCES ET LE MEILLEUR

ALGORITHME DE JOINTURE

Page 36: OPTIMISATION

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

Page 37: OPTIMISATION

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)

Page 38: OPTIMISATION

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.

Page 39: OPTIMISATION

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

- CLUSTERSLES TUPLES SONT INSERES DANS L'ORDRE D'UN INDEX (Triés ou pré-jointure)

Page 40: OPTIMISATION

EXEMPLE D'INDEX PLACANT

PAGE INTER- MEDIAIRE

25 13 33 45 75 86

25 61 PAGE RACINE

Exemple d'index non groupant.

PAGES

S

S

FEUIL- LES

PAGES DONNEES

PAGES INTERME- DIAIRES

Exemple d'index groupant

PAGES FEUIL- LES

PAGES DONNEES

8 13 33 45 75 86

25 61PAGE RACINE

Page 41: OPTIMISATION

METHODE• GENERATION DE PLUSIEURS PLANS

COUT COMBINATOIRE ==> TROP COUTEUX.

• SOLUTIONELIMINER 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

Page 42: OPTIMISATION

CHOIX DES ALGORITHMES(JOINTURE)

• PAR BOUCLE IMBRIQUEEPour CHAQUE PAGE DE R1

Pour CHAQUE PAGE DE R2 JOINDRE (P.R1, P.R2)

FpourFpour

COUT = R1 * R2

• PAR TRI-FUSION TRIER (R1); TRIER (R2)FUSIONNER (R1, R2) 

COUT = 2 R1 LOG R1 + R2 LOG R2 + R1 + R2

Page 43: OPTIMISATION

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 SUCCESFpour

Fpour

• SUR R1 ET R2 -> FUSIONNER LES INDEX

Page 44: OPTIMISATION

CHOIX DES ALGORITHMES (3)

• PAR HACHAGEHACHER (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-JOINTURESR1 R2 ET R2 R1 AVANT

JOINTURE 

Page 45: OPTIMISATION

CHOIX DES ALGORITHMES (4)

• EXECUTION PARALLELE(EVITER L'ACCES REPETITIFAUX 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.NBLA RELATION A N'EST LUE

QU'UNE SEULE FOIS

- PIPELINE D'OPERATIONS: ENCHAINER SELECTION ET PROJECTION SUR UNE MEME RELATION

Page 46: OPTIMISATION

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)

Page 47: OPTIMISATION

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

Page 48: OPTIMISATION

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)

{F = 1/ICARD SI INDEX F = 1/10 SINON

{F = (MAX-VAL) / (MAX-MIN) SI ARITHMETIQUE ET VALEUR CONNUE F = 1/3 SINON

{F = (VAL 2-VAL 1) / (MAX-MIN) SI ARITHMETIQUE ET VALEURS CONNUES F = 1/4 SINON

Page 49: OPTIMISATION

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

Page 50: OPTIMISATION

EXEMPLE

EXEMPLE : SELECT

FROM

WHERE

NV, MILL, DEGRE

VINS

DEGRE > 12

AND CRU = "MORGON"

AND MILL = 1980

IND.DEGRE IND.CRU SCAN

NBTUP = 1000

NBPAG TCARD = 20 (50 PAR PAGES)

Page 51: OPTIMISATION

CALCUL DE RISCARD

• RSICARDF(P) = (DEGRE > 12) *

F (CRU = "MORGON") *F (MILLESIME = 80)

F (DEGRE > 12) = (2000 - 1400) / (2000 - 1000)= 0,6

F (CRU = "MORGON") = 1 / 4 = 0,25F (MILLESIME = 80) = 1 / 4 = 0,25

F (P) = 0,6 x 0,25 x 0,25 = 0,0375RSICARD = 0,0375 * 1000 =

37

Page 52: OPTIMISATION

EVALUATION

• INDEX DEGRE -> NBCLE = 50NBINDX = 2

COUT (IND.DEGRE) =F (IND.DEGRE) * (2 + 1000) + W * 37= 0,6 * 1 002 + W * 37 = 601 + 37 * W

• FACTEUR W : W = 0,21 E / S 20 ms1 Appel 4 ms

COUT (IND.DEGRE) = 608

• INDEX CRU -> NBCLE = 4NBINDX = 1

COUT (IND.CRU) =F (IND.CRU) * (1 + 1000) + W *

37= 0,25 * 1 001 + 37 * WCOUT (IND.CRU) = 257

• SCAN : 20 + W * 37 = 27COUT (SCAN) = 27

Page 53: OPTIMISATION

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 

Page 54: OPTIMISATION

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)

Page 55: OPTIMISATION

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. 


Recommended