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.