Database Reference
In-Depth Information
L: „ Peter, weißt Du, wie Oracle die Kardinalität von 2667 in diesem Ausführungsplan be-
rechnet?
P: „ Der Optimizer berechnet diese Kardinalität wahrscheinlich pauschal, weil die Histo-
gramme nicht existieren. Wie es aber genau gemacht wird, weiß ich nicht.
L.: „ Das macht der Optimizer anhand der Statistiken für die Spalte A '. “
64/!VHOHFWQXPBGLVWLQFWQXPBQXOOVIURPGEDBWDEBFROBVWDWLVWLFVZKHUHRZQHU 7(67DQG
WDEOHBQDPH 7DQGFROXPQBQDPH $
180B',67,1&7180B18//6
Die Tabelle T1 hat 10001 Datensätze. Oracle subtrahiert aus dieser Zahl die Anzahl der
Null-Werte, die für unsere Abfrage nicht relevant sind. So kommt man auf die Zahl 8001. Da
die Spalte A ' 3 verschiedene Werte hat, muss man jetzt 8001 durch 3 teilen. Das Ergebnis ist
2667 .“
P.: „ Der Optimizer geht in diesem Fall also davon aus, dass die Werte in der Spalte A '
gleichmäßig verteilt sind?
L.: „ Richtig. Wenn wir jetzt testweise diese Statistiken entfernen, muss der Optimizer eine
Annahme bei der Einschätzung der Kardinalität tun.
64/!H[HF
GEPVBVWDWVGHOHWHBFROXPQBVWDWV7(677$FROBVWDWBW\SH !$//QRBLQYDOLGDWH !IDOVH
3/64/SURFHGXUHVXFFHVVIXOO\FRPSOHWHG
64/!VHOHFWIURPGEDBKLVWRJUDPVZKHUHRZQHU 7(67DQGWDEOHBQDPH 7DQGFROXPQBQDPH $
QRURZVVHOHFWHG
64/!VHOHFWFRXQWEIURPWHVWWZKHUHD E
&2817%
64/!VHOHFWSODQBWDEOHBRXWSXWIURPWDEOHV\VGEPVB[SODQGLVSOD\BFXUVRU$'9$1&('
/$67
3/$1B7$%/(B287387
64/B,'SQ[YMEUFKLOGQXPEHU
VHOHFWFRXQWEIURPWHVWWZKHUHD E
3ODQKDVKYDOXH
_,G_2SHUDWLRQ_1DPH_5RZV_%\WHV_&RVW&38_7LPH_
__6(/(&767$7(0(17______
__6257$**5(*$7(______
__7$%/($&&(66%<,1'(;52:,'_7_____
__,1'(;5$1*(6&$1_,B7_____
Search WWH ::




Custom Search