bases de donnes
Mise en uvre sous Oracle
Laurent Navarro
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro
Pearson Education France a apport le plus grand soin la ralisation de ce livre afin de
vous fournir une information complte et fiable. Cependant, Pearson Education France
nassume de responsabilits, ni pour son utilisation, ni pour les contrefaons de brevets
ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation.
Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour
illustrer les descriptions thoriques. Ils ne sont en aucun cas destins une utilisation
commerciale ou professionnelle.
Pearson Education France ne pourra en aucun cas tre tenu pour responsable des
prjudices oudommages de quelque nature que ce soit pouvant rsulter de lutilisation
de ces exemples ou programmes.
Tous les noms de produits ou marques cits dans ce livre sont des marques dposes par
leurs propritaires respectifs.
Publi par Pearson Education France
47 bis, rue des Vinaigriers
75010 PARIS
Tl. : 01 72 74 90 00
www.pearson.fr
Mise en pages : TyPAO
ISBN : 978-2-7440-2412-2
Copyright 2010 Pearson Education France
Tous droits rservs
Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a)
du code de la proprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France
ou, le cas chant, sans le respect des modalits prvues larticle L. 122-10 dudit code.
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro
IX
propos de lauteur.......................................................................................................................
XI
Introduction......................................................................................................................................
1.1
1.1.1
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2
10
10
11
12
13
1.3
14
1.4
15
1.4.1
1.4.2
15
16
Axe 1
tude et optimisation dumodle de donnes
2
21
2.1
Prsentation. .............................................................................................................
21
2.2
25
2.2.1
28
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro
IV
2.2.2
2.2.3
3
30
33
3.1
Normalisation...........................................................................................................
33
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
34
38
3.2.1
3.2.2
38
43
3.2
3.2.3
3.3
31
35
36
37
38
40
42
Axe 2
tude et optimisation desrequtes
4
49
4.1
49
4.1.1
4.1.2
4.1.3
Mesurer....................................................................................................
Comprendre le plan dexcution........................................................
Identifier les requtes qui posent des problmes...........................
50
Outils complmentaires..........................................................................................
64
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.2.6
64
4.2
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro
55
61
65
66
67
72
73
77
5.1
77
78
78
80
85
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
5.2.6
86
5.1.1
5.1.2
5.1.3
5.2
5.3
Index B*Tree..........................................................................................
Index sur fonction..................................................................................
Reverse Index.........................................................................................
Index bitmap...........................................................................................
Bitmap Join Index. ................................................................................
Full Text Index. ......................................................................................
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
5.3.6
6
6.1.1
6.1.2
6.1.3
6.1.4
6.1.5
6.1.6
6.1.7
6.1.8
6.2
Transformation de requtes.................................................................
IN versus jointure..................................................................................
Sous-requtes versus anti-jointures...................................................
Exists versus Count...............................................................................
Exists versus IN......................................................................................
Clause Exists * versus constante. ......................................................
Expressions sous requtes...................................................................
Agrgats: Having versus Where........................................................
6.2.1
6.2.2
6.2.3
6.2.4
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro
99
100
101
108
111
118
118
122
132
135
146
148
153
153
154
155
156
158
159
160
161
162
163
163
163
164
164
VI
6.2.5
6.2.6
6.2.7
6.2.8
6.2.9
6.2.10
6.2.11
6.2.12
6.2.13
6.2.14
6.2.15
6.2.16
6.2.17
7
165
177
7.1
177
7.1.1
7.1.2
7.1.3
7.1.4
7.1.5
7.1.6
Syntaxe gnrale....................................................................................
Les hints Optimizer Goal. ...................................................................
Les hints Access Path. ..........................................................................
Les hints Query Transformation........................................................
Les hints de jointure..............................................................................
Autres hints.............................................................................................
179
Excution parallle..................................................................................................
183
7.2.1
185
186
7.3.1
7.3.2
7.3.3
7.3.4
7.3.5
7.3.6
7.3.7
7.3.8
7.3.9
186
7.2
7.3
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro
165
166
166
169
170
171
172
173
173
173
175
176
179
180
181
182
183
188
189
191
192
194
195
196
198
7.4
PL/SQL. ....................................................................................................................
198
7.4.1
198
7.4.2
200
7.4.3
203
7.4.4
208
7.4.5
209
7.4.6
210
7.4.7
Utilisation du profiling.........................................................................
212
7.4.8
212
Axe 3
Autres pistes doptimisation
8
217
8.1
217
8.2
217
8.3
Utilisation du binding.............................................................................................
219
8.4
221
8.5
221
8.6
221
Optimisation de linfrastructure.......................................................................................
223
9.1
223
9.1.1
223
9.1.2
224
Optimisation matrielle..........................................................................................
224
9.2.1
Le CPU.....................................................................................................
224
9.2.2
225
9.2.3
225
9.2.4
Le rseau..................................................................................................
226
Conclusion.........................................................................................................................................
227
9.2
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro
VIII
Annexes
Gestion interne des enregistrements................................................................................
231
A.1
Le RowID. ................................................................................................................
231
A.2
232
235
B.1
235
B.2
236
B.3
Histogrammes. .........................................................................................................
240
B.4
241
245
Glossaire. .................................................................................................................................
249
Index...................................................................................................................................................
251
2010 Pearson Education France Optimisation des bases de donnes Laurent Navarro