OPTIMISATION

Preview:

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

Citation preview

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)

ANALYSEUR

CONTROLE

OPTIMISEUR

ACCES

CATALOGUE

ORDONNANCEMENT ET

ELABORATION D'UN PLAN

SYNTAXE SEMANTIQUE

SCHEMA

VUES INTEGRITE

AUTORISATIONS

METHODES D'ACCESEXECUTION

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

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

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

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

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

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

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

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

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

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"

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

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

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

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

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

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

<==>

R2 R1R1 R2

X X

R1 R2 R1R2

<==>

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)

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

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

<==>

Graphiques (5)

(14) COMMUTATION DES PROJECTIONS AVEC LES UNIONS

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

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

A1..Ap A1..Ap

A1..Ap

<====>

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)

• 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

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

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

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)

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

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

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

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

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

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

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

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 

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

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)

{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

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

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)

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

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

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.