La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Évaluation des requêtes relationnelles. 2 Concepts de base.

Présentations similaires


Présentation au sujet: "1 Évaluation des requêtes relationnelles. 2 Concepts de base."— Transcription de la présentation:

1 1 Évaluation des requêtes relationnelles

2 2 Concepts de base

3 3 Requête interne

4 4 Optimisation statique ou dynamique Dynamique –à chaque exécution EXECUTE IMMEDIATE de SQL Statique –compilation PREPARE de SQL –plusieurs exécutions EXECUTE –réoptimisation automatique suite à modification de schéma interne?

5 5 Décomposition 1)Analyse syntaxique 2)Analyse sémantique 3)Résolution des vues 4)Simplification syntaxique 5)Simplification sémantique

6 6 Estimation du coût des opérations physiques TempsES : temps daccès à mémoire secondaire (MS) TempsUCT –souvent négligeable TailleMC : espace mémoire centrale TailleMS : espace mémoire secondaire

7 7 Modèle du coût d'une entrée-sortie en mémoire secondaire TempsESBloc = TempsESDisque(TailleBloc) = TempsPosDébut + TempsTrans (TailleBloc) TempsTrans (TailleBloc) = TailleBloc / TauxTransVrac

8 8 Statistiques au sujet des tables

9 9 Statistiques (suite)

10 10 Statistiques (suite)

11 11 Maintien des statistiques par le SGBD Coût inversement relié à la précision Mise à jour incrémentale –à chaque mise à jour Mise à jour en différé –périodes de faible activité –déclenchement contrôlé par ABD Estimation par échantillonnage –tables très volumineuses Commande ANALYSE (Oracle) contrôle du déclenchement paramètres d échantillonnage

12 12 Coût des opérations de base Algèbre physique Hypothèses –Néglige effet de l antémémoire –Néglige écriture du résultat –TailleLigne < TailleBloc –Sans interruption

13 13 Balayage (BAL) TempsES(BAL)=B T *TempsTrans+NombrePos* TempsPosDébut

14 14 Exemple : TempsES (BAL Editeur ) Allocation sérielle sans fragmentation interne FB Editeur = FBM Editeur = 60 B Editeur = N Editeur / FB Editeur = 50/ 60 = 1 bloc TempsES (BAL Editeur ) = B Editeur * TempsTrans + NombrePos * TempsPosDébut TempsES (BAL Editeur ) = 11 ms

15 15 Exemple : TempsES (BAL Catégorie ) Allocation sérielle sans fragmentation interne FB Catégorie = FBM Catégorie = 40 B Catégorie = N Catégorie / FB Catégorie = 4 000/ 40 = 100 blocs Meilleur cas : –TempsES (BAL Catégorie ) = B Catégorie * TempsTrans + NombrePos * TempsPosDébut –= 100 * 1 ms + 1 * 10 ms = 110 ms Pire cas : –TempsES (BAL Catégorie ) = 100 * 1 ms * 10 ms = ms

16 16 Exemple : TempsES (BAL Livre ) Allocation sérielle sans fragmentation interne FB Livre = FBM Livre = 20 B Livre = N Livre / FB Livre = / 20 = blocs Meilleur cas : –TempsES (BAL Livre ) = 50,01 secs Pire cas : –TempsES (BAL Livre ) = 9,16 minutes

17 17 Exemple : TempsES (BAL Livre ) Arbre-B + primaire sur la clé primaire ISBN FB Livre = 2/3 FBM Livre = 13 B Livre = N Livre / FB Livre = / 13 = blocs Pire cas (consécutivité des feuilles non assurée) ! –TempsES (BAL Livre ) = B Livre * TempsTrans + NombrePos * TempsPosDébut –= * 1ms * 10ms = ms = 14,1 minutes

18 18 Sélection par égalité dans un index arbre-B + primaire (S=IP) TempsES (S=IP) = –Parcours des niveaux dindex (Hauteur I -1) * TempsESBloc + –Parcours des feuilles Sel T (CléIndex = Valeur)/ FB T * TempsESBloc

19 19 Suite Cas dune clé candidate –TempsES (S=IP sur clé candidate)=Hauteur I * TempsESBloc Estimation de Hauteur I – 1 + log OrdreMoyenI (Card T (CléIndex) / FB T ) OrdreMoyen I = 2/3 Ordre I FB T = 2/3 FBM T

20 20 Index primaire code de la table Catégorie (clé primaire ) OrdreMoyen I = 2/3 Ordre I = 66 FB Catégorie = 2/3 FBM Catégorie = 26 Hauteur I = 1 + log OrdreMoyenI (Card Catégorie (code) / FB Catégorie ) = 1+ log 66 (4 000 / 26) = 3 TempsES (S=IP) = Hauteur I *TempsESBloc = 33 ms

21 21 Index primaire sur code de la table Livre (clé étrangère) OrdreMoyen I = 2/3 Ordre I = 66 FB Livre = 2/3 FBM Livre = 13 Hauteur I = 1 + log OrdreMoyenI (Card Livre (code) / FB Livre ) = 3 FacteurSélectivité Livre (code) = 1/ Card Livre (code) = 1/4 000 Sel Livre (code = Valeur ) = = /4000 = 250 lignes TempsES (S=IP) = (Hauteur I -1) * TempsESBloc + Sel Livre (code = Valeur)/ FB Livre ) * TempsESBloc = 2* 11 ms + ( 250/ 13) * 11 ms = 22 ms +20 * 11 ms = 242 ms

22 22 Index primaire sur ISBN de Livre (clé primaire) OrdreMoyen I = 2/3 Ordre I = 66 FB Livre = 2/3 FBM Livre = 13 Hauteur I = 1 + log OrdreMoyenI (Card Livre (ISBN) / FB Livre ) = 4 TempsES (S=IP) = Hauteur I *TempsESBloc = 44 ms

23 23 Taille de l'index primaire TailleMS(IP) = TailleIndexInterne + B livre FB T = 2/3 FBM T B T = N T / FB T TailleIndexInterne Card T (CléIndex)/ OrdreMoyen I

24 24 Index primaire sur code de Livre FB Livre = 2/3*FBM Livre = 13 B Livre = N Livre / FB Livre = / 13 = blocs TailleIndexInterne Card Livre (code)/ OrdreMoyen I = 61 blocs TailleMS(IP) = TailleIndexInterne + B Livre blocs blocs pour allocation sérielle

25 25 Sélection par égalité dans un index arbre-B + secondaire (S=IS)

26 26 Estimation de TempsES (S=IS) Niveaux dindex (Hauteur I -1) * TempsESBloc Feuilles de l index Sel T (CléIndex = Valeur)/ OrdreMoyen I *TempsESBloc Blocs de l organisation primaire Sel T (CléIndex = Valeur)*TempsESBloc TempsES (S=IS sur clé candidate) (Hauteur I +1)*TempsESBloc

27 27 Estimation sans relecture de blocs Éviter de relire les blocs de données de l organisation primaire Nombre moyen de blocs à lire : (1- (1- FacteurSélectivité T (CléIndex)) FB )* B T

28 28 Estimation de Hauteur I pour index secondaire Hypothèses clés répétées OrdreMoyen = FB Hauteur I = log OrdreMoyenI (N T )

29 29 Index secondaire code de Livre (clé étrangère) Hauteur I = log 66 ( ) = 4 Sel Livre (code = Valeur )= 250 lignes TempsES (S=IS) = 2 827ms TempsES (S=ISa) = 2 827ms TempsES (S=IP) = 242ms

30 30 Index secondaire sur code de Livre (clé étrangère) Hauteur I = log 66 ( ) = 4 Sel Livre (code = Valeur) = lignes TempsES (S=IS) = ms TempsES (S=ISa) = ms Pire que TempsES (BAL Livre ) = 50,01 secs !

31 31 Index secondaire sur ISBN de Livre (clé primaire) Hauteur I = log 66 ( ) = 4 TempsES (S=IS sur clé candidate) = (Hauteur I +1)*TempsESBloc = 55 ms ~TempsES (S=IP) = Hauteur I *TempsESBloc = 44 ms

32 32 Taille de l'index secondaire Index secondaire code de Livre (clé étrangère) TailleMS(IS) = N Livre / OrdreMoyen I = blocs ~ 1/3 taille de la table ! TailleMS(IS) (15 152) + B Livre (50 000)< TailleMS(IP) (76 985)

33 33 Sélection par intervalle dans un index arbre-B + primaire (S>IP) ~ clé non unique CléIndex [Valeur 1..Valeur 2 ] TempsES (S>IP) = (Hauteur I -1) * TempsESBloc + Sel T (CléIndex [Valeur 1..Valeur 2 ])/ FB T * TempsESBloc

34 34 Index primaire sur code de la table Livre (clé étrangère) OrdreMoyen I = 2/3 Ordre I = 66 FB Livre = 2/3 FBM Livre = 13 Hauteur I = 3 TempsES (S>IP) = ms

35 35 Sélection par intervalle dans un index arbre-B + secondaire (S>IS) ~ clé non unique

36 36 Sélection par égalité avec hachage (S=H) Hachage statique + chaînage TempsES (S=H) = N T /( TH T * FB T ) * TempsESBloc

37 37 Hachage sur ISBN de Livre (clé primaire) Hypothèse ~ idéale TR = 80% FB Livre = 0,8* FBM Livre = 16 TH Livre = N Livre / FB Livre = blocs pas de débordements TempsES (S=H) = /( * 16) * 11ms =11 ms TempsES (S=IP) = Hauteur I *TempsESBloc = 44 ms

38 38 Hachage sur code de Livre (clé étrangère) Hypothèse ~ idéale TH Livre = Card Livre (code) = FB Livre = FBM Livre = 20 TempsES (S=H) = /( * 20) * 11ms = 143 ms TempsES (S=IP) = 242 ms

39 39 Taille de l'organisation par hachage TailleMS(S=H) = N T /FB T Hachage sur ISBN de Livre (clé primaire) Hypothèse ~ idéale TailleMS(S=H) = TH Livre = N Livre / FB Livre = blocs

40 40 Sélection par clé composée Hypothèse de distribution indépendante FacteurSélectivité T (C 1 = V 1 et C 2 = V 2 et… et C n = V n ) = FacteurSélectivité T (C 1 )* FacteurSélectivité T (C 2 ) * …* FacteurSélectivité T (C n )

41 41 Index secondaire sur clé composée {code, annéeParution} de Livre Hauteur I = log 33 ( ) = 4 FacteurSélectivité Livre (code = V 1 et annéeParution = V 2 ) = FacteurSélectivité Livre (code)* FacteurSélectivité Livre (annéeParution) = 1/Card Livre (code) * 1/Card Livre (annéeParution) = 1/ Sel Livre (code = V 1 et annéeParution = V 2 )= N Livre / = 5 lignes TempsES (S=IS) = (Hauteur I - 1) * TempsESBloc + ® Sel Livre (code = V 1 et annéeParution = V 2 )/ OrdreMoyen I *TempsESBloc + ® Sel Livre (code = V 1 et annéeParution = V 2 ) * TempsESBloc TempsES (S=IS) = 3 * 11 ms + 5/ 33 *11 ms + 5 * 11 ms = 99 ms

42 42 Index secondaire sur clé composée {code, annéeParution} de Livre Hauteur I = log 33 ( ) = 4 TempsES (S=IS) = (Hauteur I - 1) * TempsESBloc + Sel Livre ({code, annéeParution} [{unCode, min}.. {unCode, max}])/ OrdreMoyen I *TempsESBloc + Sel Livre ({code, annéeParution} [{unCode, min}.. {unCode, max}]) * TempsESBloc FacteurSélectivité Livre ({code, annéeParution} [{unCode, min}.. {unCode, max}]) ~ FacteurSélectivité Livre (code) = 1/4 000 TempsES (S=IS) = 2 827ms (idem index sur code seul)

43 43 Index secondaire sur clé composée {code, titre} de Livre Hauteur I = log 6 ( ) = 8 TempsES (S=IS) = ms

44 44 ORGANISATIONS HÉTÉROGÈNES Adapter les formules facteur de blocage doit tenir compte de la présence de plusieurs tables

45 45 TRI D'UNE TABLE (TRI) Utilité jointure par tri-fusion élimination des doubles (DISTINCT) opérations d agrégation (GROUP BY) résultats triés (ORDER BY) Tri externe si M est petit tri-fusion

46 46 Tri fusion externe Étape tri nombre de groupes = B T /M = 12 /3 = 4 Coût = 2 * ( B T /M * TempsPosDébut + B T * TempsTrans) = 104 ms

47 47 Étape fusion Coût des passes de fusion = B T *(2* log M-1 (B T /M) -1) * TempsESBloc = 12*(2* log 2 (12 /3) -1) *11ms = 396 ms

48 48 Coût total du tri-fusion externe TempsES (TRI) = 2*( B T /M * TempsPosDébut + B T *TempsTrans) + B T *(2* log M-1 (B T /M) -1) * TempsESBloc = 104 ms ms = 500 ms

49 49 Tri de Livre Allocation sérielle sans fragmentation interne M = 50 TempsES (TRI) = 29,5 mins

50 50 SÉLECTION CONJONCTIVE PAR INTERSECTION (S ) Index I1 sur code Index I2 sur annéeParution TempsES(S ) = TempsES(Extraction de la liste des références de I1) + TempsES(Extraction de la liste des références de I2) + TempsES(Lecture des blocs de données)

51 51 Suite TempsES(Extraction de la liste des références de I1) = (Hauteur I1 - 1) * TempsESBloc + Sel Livre (code = Valeur)/ OrdreMoyen I *TempsESBloc = 77 ms TempsES(Extraction de la liste des références de I2) = (Hauteur I2 - 1) * TempsESBloc + Sel Livre (annéeParution = Valeur)/ OrdreMoyen I *TempsESBloc = ms TempsES(Lecture des blocs de données) = Sel Livre (code = V 1 et annéeParution = V 2 )*TempsESBloc = 55 ms TempsES(S ) = ms > TempsES (S=IS pour index I1) = ms

52 52 Si Card Livre (annéeParution) = 100 TempsES(S ) = 1809,5 ms < TempsES (S=IS pour index I1) = ms

53 53 SÉLECTION DISJONCTIVE PAR UNION (S ) FacteurSélectivité T (C 1 = V 1 ou C 2 = V 2 ou… ou C n = V n ) = 1-((1-FacteurSélectivité T (C 1 ))* (1-FacteurSélectivité T (C 2 )) * …* (1-FacteurSélectivité T (C n )))

54 54 OPÉRATIONS DE JOINTURE Cas de deux tables R S Extension directe à d autres cas union, intersection, jointure externe,...

55 55 Jointure par boucles imbriquées Boucles imbriquées par lignes (BI) TempsES (BI) = B R * TempsESBloc + N R * (B S * TempsTrans + TempsPosDébut) Meilleur cas (antémémoire suffisamment grande) : TempsES (BI) = TempsES (BAL R ) + TempsES (BAL S ) = (B R + B S ) * TempsTrans + 2*TempsPosDébut

56 56 BI : Livre Catégorie R=Livre et S=Catégorie TempsES (BI) = 30,57 hrs R = Catégorie et S = Livre TempsES (BI) = 56,57 hrs Meilleur cas (sans relecture) TempsES (BI) = ms

57 57 Boucles imbriquées par blocs (BIB) TempsES (BIB) = B R * TempsESBloc + B R * (B S * TempsTrans + TempsPosDébut)

58 58 BIB: Livre Catégorie R=Livre et S=Catégorie TempsES (BIB) = 100,83 mins R = Catégorie et S = Livre TempsES (BIB) = 83,37 mins Meilleur cas (sans relecture) TempsES (BIB) = ms

59 59 Boucles imbriquées multi-blocs (BIM) TempsES (BIM) = B R * TempsTrans + B R /(M-2) * TempsPosDébut + B R /(M-2) * (B S * TempsTrans + TempsPosDébut)

60 60 BIM: Livre Catégorie M = 50 R=Livre et S=Catégorie TempsES (BIM) = 175,04secs R = Catégorie et S = Livre TempsES (BIM) = 150,16secs

61 61 Jointure par boucles imbriquées avec index sur la table interne (BII) TempsES (BII) = B R * TempsESBloc + N R * TempsES (Sélection par index)

62 62 BII: Livre Catégorie Cas des index primaires R=Livre et S=Catégorie TempsES (BII) = B Livre * TempsESBloc + N Livre * TempsES(S=IP Catégorie pour l'index primaire sur code) = 9,32 hrs R = Catégorie et S = Livre TempsES (BII) = B Catégorie * TempsESBloc + N Catégorie * TempsES(S=IP Livre pour l'index primaire sur code) = 16,15 mins

63 63 Contexte avantageux pour BII Jointure sélective Peu de mémoire vive

64 64 Jointure par boucles imbriquées avec hachage sur la table interne (BIH) TempsES (BIH) = B R * TempsESBloc + N R * TempsES(Sélection par hachage)

65 65 BIH: Livre Catégorie R=Livre et S=Catégorie TempsES (BIH) = B Livre * TempsESBloc + N Livre * TempsES(S=H Catégorie pour hachage sur code) = 3,21 hrs R = Catégorie et S = Livre TempsES (BIH) = B Catégorie * TempsESBloc + N Catégorie * TempsES(S=H Livre pour hachage sur code)= 11,75 mins

66 66 Jointure par tri-fusion (JTF) TempsES (JTF) = TempsES (TRI R ) + TempsES (TRI S ) + 2*(B R + B s ) * TempsESBloc

67 67 JTF: Livre Catégorie M = 50 TempsES (JTF) = TempsES (TRI Livre ) + TempsES (TRI Catégorie ) + 2*(B Livre + B Catégorie ) * TempsESBloc = ms >>TempsES (BIM) = ms (R = Catégorie)

68 68 Si 100 fois plus de Catégories M = 50 TempsES (JTF) = ms < TempsES (BIM) = ms M = 10 TempsES (JTF) = ms << TempsES (BIM) = ms

69 69 Jointure par hachage (JH) Égalité seulement 1- Partition des tables (Si h [0..n-1], M n)

70 70 Jointure par hachage (suite) Jointure par itération sur les parties TempsES (JH) = TempsES (BAL R ) + TempsES (BAL s ) + 2 * (B R + B s ) *TempsESBloc Hypothèse : taille de R < taille de S taille de R i M blocs

71 71 Hachage récursif Si M < R i (~ B R /M ) hacher récursivement ~ log M (B R )-1 passes ® ne dépend que de la plus petite table TempsES (JH) = TempsES (BAL R ) + TempsES (BAL s ) + 2 * (B R + B s ) * log M (B R )-1 *TempsESBloc Si B R M TempsES (JH) = TempsES (BAL R ) + TempsES (BAL s )

72 72 JH: Livre Catégorie R = Catégorie (la plus petite table) M = 50 TempsES (JH) = ms >TempsES (BIM) = ms (R = Catégorie) < TempsES (JTF) = ms

73 73 Si 100 fois plus de Catégories R = Catégorie (la plus petite table) M = 50 TempsES (JH) = ms << TempsES (BIM) = ms (R = Catégorie)

74 74 Pré-jointure par une organisation hétérogène (PJ) Organisation hétérogène sériel par grappe index primaire hachage TempsES (PJ) ~ TempsES (BAL R ) + TempsES (BAL s ) meilleur cas ® pas de fragmentation interne...

75 75 PJ: Livre Catégorie TempsES (PJ) = ms meilleur cas

76 76 Comparaison des méthodes de jointure BIM une des deux tables est petite JTF 2 grandes tables ® nombre de passes de tri dépend de la plus grande table ordre intéressant JH 2 grandes tables nombre de passes ne dépend que de la plus petite table BII ou BIH utilisation partielle dune des deux tables PJ optimal pour jointure si peu de fragmentation interne pénalise opérations sur une table

77 77 AGRÉGATION, ÉLIMINATION DES DOUBLES, OPÉRATIONS ENSEMBLISTES Principe général appariement de lignes sur valeurs communes Adapter les algorithmes de jointure et estimation de coût

78 78 Optimisation Chercher le meilleur plan d exécution? coût excessif Solution approchée à un coût raisonnable Générer les alternatives ® heuristiques Choisir la meilleure ® estimation approximative du coût

79 79 Plans d'exécutions équivalents Plusieurs arbres algébriques équivalents etc.

80 80 Règles d équivalences de l algèbre relationnelle Eclatement d'une sélection conjonctive (SE) e1 ET e2 (T) = e1 ( e2 (T)) Commutativité de la sélection (SC) e1 ( e2 (T)) = e2 ( e1 (T)) Elimination des projections en cascades (PE) liste1 ( liste2 (T)) = liste1 (T) Commutativité de la jointure (JC) T 1 T 2 = T 2 T 1 Associativité de la jointure (JA) T 1 (T 2 T 3 ) = (T 1 T 2 ) T 3

81 81 Suite Commutativité restreinte de la sélection et de la jointure (CSJ) e (T 1 T 2 ) = e (T 1 ) T 2 ® si l'expression de sélection e ne contient que des colonnes de T 1 Commutativité restreinte de la projection et de la sélection (CPS) listeColonnes ( e (T)) = listeColonnes ( e ( listeColonnes colonnes de e T)) Commutativité restreinte de la projection et de la jointure (CPJ) listeColonnes (T 1 T 2 ) = listeColonnes ( listeColonnes colonnes de T1 (T 1 ) listeColonnes colonnes de T2 (T 2 )) etc.

82 82 Plusieurs plans d exécution pour un arbre algébrique Pour chaque opération logique plusieurs choix d opérations physiques etc.

83 83 Mise en œuvre du plan d'exécution Matérialisation des tables intermédiaires Pipeline

84 84 MISE EN ŒUVRE PAR MATÉRIALISATION

85 85 MISE EN ŒUVRE PAR PIPELINE

86 86 Réalisation des opérations par itérateur Interface standard Ouvrir ® déclenche lopération Suivant ® produit la ligne suivante Fermer ® termine l opération Certaines opérations moins adaptées ex: Ouvrir pour le tri-fusion ® tri des deux tables…

87 87 Heuristiques d'optimisation Élaguer l espace des solutions solutions non applicables Exemples d heuristiques sélections le plus tôt possible projections le plus tôt possible arbres biaisés à gauche seulement les jointures plus restrictives en premier jointures supportées par index, hachage ou grappe en premier

88 88 Heuristique : arbres biaisés à gauche seulement Jointure de n tables (2*(n-1))!/(n-1)! ordres différents pour n tables n! biaisés à gauche

89 89 Optimisation heuristique Oracle mode RULE

90 90 Optimisation par coût Minimiser le coût Stratégies programmation dynamique amélioration itérative recuit simulé algorithme génétique

91 91 ESTIMATION DU COÛT D'UN PLAN D'EXÉCUTION TempsES(Plan avec pipeline) = TempsES (JTF Livre Catégorie ) = ms

92 92 Autre exemple TempsES(Plan avec pipeline) = TempsES(S=IS pour index sur ISBN) + N ISBN=1000 Œuvre * TempsES(S=IS sur code de Catégorie) = 55 ms + 33 ms = 88 ms

93 93 ESTIMATION DE LA TAILLE DU RÉSULTAT D'UNE OPÉRATION Taille d'une sélection Sel T (Expression de sélection)/ FBM T blocs Taille d'une projection N C1,C2,…,Cn(T) = (1- colonnes Ci de la projection (1- FacteurSélectivité T (C i )))*N T Taille d'une jointure naturelle N R S = N R * N S / maximum(Card R (cléJointure), Card S (cléJointure))

94 94 VARIATIONS DU MODÈLE D'ESTIMATION DU COÛT Simplification nombre de blocs à transférer Jointures taille du résultat Contexte réparti seulement coût de transfert entre sites Hypothèses sur distributions Coût UCT

95 95 Contrôle du processus d'optimisation Cas Oracle outils ® EXPLAIN PLAN ® SQL Trace ® Oracle EXPERT HINTS pour forcer l utilisation d un chemin SELECT /*+ INDEX(EMPLOYÉ INDEX_SEXE)*/ FROM EMPLOYÉ WHERE SEXE = F

96 96 Exemple d utilisation de EXPLAIN PLAN SQL> start utlxplan.sql Pour créer la table plan_table Table created.... SQL> run 1 explain plan 2 set statement_id = 'com' 3 for select * from commandes, lignes_de_commande 4* where no_commande = commande_no_commande Explained.

97 97 Suite SQL> run 1 SELECT LPAD(' ',2*(LEVEL-1))||operation||' '||options 2 ||' '||object_name 3 ||' '||DECODE(id, 0, 'Cost = '||position) "Query Plan" 4 FROM plan_table 5 START WITH id = 0 AND statement_id = 'com' 6* CONNECT BY PRIOR id = parent_id AND statement_id ='com' Query Plan SELECT STATEMENT Cost = NESTED LOOPS TABLE ACCESS FULL LIGNES_DE_COMMANDE TABLE ACCESS BY ROWID COMMANDES INDEX UNIQUE SCAN COMMANDE_PK

98 98 Paramètre OPTIMIZER_MODE COST (statistique): minimise le coût estimé besoin de statistiques (ANALYSE) plus précis plus coûteux RULE (heuristique) appelé à disparaître ?

99 99 OPTIMIZER_GOAL ALTER SESSION SET OPTIMIZER_GOAL = RULE ALL_ROWS minimise le temps total (plutôt MERGE JOIN) FIRST_ROWS minimise temps réponse (plutôt NESTED LOOPS) CHOOSE


Télécharger ppt "1 Évaluation des requêtes relationnelles. 2 Concepts de base."

Présentations similaires


Annonces Google