Database Reference
In-Depth Information
7.1.1
Einige Optimizer-Statistiken
Optimizer-Statistiken kann nicht nur der Optimizer beim Erstellen der Ausführungspläne
benutzen, diese können auch für Sie bei den Performanzanalysen behilflich sein. Anhand
der Statistiken für die Anzahl der Blöcke in der Spalte BLOCKS der View DBA_TAB_STA-
TISTICS oder für die Anzahl der Datensätze in der Spalte NUM_ROWS derselben View
können Sie die Größe der Tabellen einschätzen. Die Statistiken für die Anzahl der Daten-
sätze in der Spalte NUM_ROWS der View DBA_IND_STATISTICS und für die Anzahl
der verschiedenen Indexwerte in der Spalte DISTINCT_KEYS derselben View helfen Ih-
nen bei der Schätzung der Selektivität der Indices. In diesem Abschnitt sind einige weitere
Optimizer-Statistiken beschrieben, die Ihnen bei den Performanzanalysen nützlich sein
können.
7.1.1.1 Histogramme
Wenn die Daten in einer Tabellenspalte ungleichmäßig verteilt sind und keine Histo-
gramme für diese Tabellenspalte existieren, ist es problematisch, die Selektivität bzw. die
Kardinalität eines Prädikats mit dem jeweiligen Spaltenwert richtig zu schätzen. Ein His-
togramm widerspiegelt die Verteilung der Daten einer Tabellenspalte. Dafür werden so
genannte Buckets benutzt, deren Anzahl den Wert von 254 nicht übersteigen kann. Die
Anzahl der Buckets kann man entweder manuell festlegen oder das dem Oracle beim Er-
stellen der Optimizer-Statistiken überlassen.
Wenn die Anzahl der verschiedenen Werte der jeweiligen Spalte kleiner als die Anzahl
der Buckets oder gleich der Anzahl der Buckets ist, ist es möglich, diese Werte den Buckets
eindeutig zuzuordnen. In diesem Fall enthält jeder Bucket die Anzahl der Tabellensätze für
den jeweiligen Spaltenwert. Diese Art von Histogrammen heißt Frequency-Histogramm
und erlaubt, absolut genau die Kardinalität für Prädikate, wie z. B. „=“, „!=“, „>“, „>=“, „<“,
„<=“, zu schätzen (wenn diese Histogramme, natürlich, treffend sind).
Wenn die Anzahl der verschiedenen Werte der jeweiligen Spalte größer als die Anzahl
der spezifizierten Buckets ist, wechselt Oracle automatisch zu der anderen Art der Histo-
gramme: Height Balanced. In diesem Fall werden die Spaltenwerte in die Intervalle aufge-
teilt, so dass jedes von ihnen ungefähr dieselbe Anzahl der Einträge enthält. Jedes Intervall
entspricht dann einem Bucket. Diese Art der Histogramme erlaubt, die Kardinalität der
jeweiligen Prädikate nur ungefähr zu schätzen.
Die View DBA_HISTOGRAMS enthält Informationen zu den Buckets der Histogram-
me:
SQL> desc dba_histograms
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
TABLE_NAME VARCHAR2(30)
COLUMN_NAME VARCHAR2(4000)
ENDPOINT_NUMBER NUMBER
ENDPOINT_VALUE NUMBER
ENDPOINT_ACTUAL_VALUE VARCHAR2(1000)
Search WWH ::




Custom Search