Oracle Optimizer Statistiken – Einführung Statistikarten
Die Oracle Optimizer Statistiken sind eine Sammlung von Daten, die die Datenbank selbst und deren Objekte beschreibt.
Diese Informationen sind im DataDictionary der Oracle Datenbank abgelegt. Der Cost Based Optimizer – CBO – nutzt diese Statistikdaten als Grundlage für die Erstellung von Ausführungsplänen – explain plan.
Man kann sich das in etwas so vorstellen, dass der Optimizer – CBO – auf Basis der ihm zur Verfügung stehenden Statistikdaten, eine sehr genaue Berechnung der Anzahl zu erwartender Datensätze durchführt.
Statistikarten
Es wird grundsätzlich zwischen 4 Statistikarten unterschieden:
- Tabellenstatistiken – [USER|ALL|DBA]_TAB_STATISTICS
- Columnstatistiken – [USER|ALL|DBA]_COL_STATISTICS
- Indexstatistiken – [USER|ALL|DBA]_IND_STATISTICS
- Systemstatistiken – SELECT pname, pval1 FROM aux_stats$ WHERE sname = ‚SYSSTATS_MAIN‘
Zusätzliche Columnstatistiken
Die Columnstatistiken benötigen u.U. zusätzliche Statistikendaten, um Datenzustände noch besser darstellen zu können. Diese Informatioen werden ebenfalls im DataDictionary gehalten und sind als Row – nicht als Column! – in [USER|ALL|DBA]_COL_STATISTICS mit einem vom System generierten Namen zu finden.
Sind Daten z.B. in einer Column ungleichmäßig verteilt, wird die Verteilung mittels Histogramme abgebildet. Es wird hier nochmals zwischen Frequency (Number Distinct Values < 254) und Hight-Balanced (Number Distinct Values >= 254) Histogrammen unterschieden.
Des Weiteren gibt es seit der Oracle Version 11g sogenannte Extended Statistics. Hier können Column Groups sowie Expression Statistics erstellt werden.
Column Groups wurden eingeführt um reale Beziehung zwischen Spalten – real-world relationships – abbilden zu können.
Expression Statistics, wie der Namen schon vermuten lässt, sind für spezielle Ausdrücke inkl. Funktionen z.B. UPPER(NAME) entwickelt worden. Hier gelten jedoch einige Restriktionen.
SCHREIBEN SIE EINEN KOMMENTAR