Database Reference
In-Depth Information
In der View DBA_TAB_COL_STATISTICS kann man ermitteln, ob Histogramme für eine
Tabellenspalte existieren, und falls ja, welcher Art sie sind:
SQL> desc dba_tab_col_statistics
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
TABLE_NAME VARCHAR2(30)
COLUMN_NAME VARCHAR2(30)
NUM_DISTINCT NUMBER
LOW_VALUE RAW(32)
HIGH_VALUE RAW(32)
DENSITY NUMBER
NUM_NULLS NUMBER
NUM_BUCKETS NUMBER
LAST_ANALYZED DATE
SAMPLE_SIZE NUMBER
GLOBAL_STATS VARCHAR2(3)
USER_STATS VARCHAR2(3)
AVG_COL_LEN NUMBER
HISTOGRAM VARCHAR2(15)
SQL> select distinct histogram from dba_tab_col_statistics;
HISTOGRAM
---------------
FREQUENCY
HEIGHT BALANCED
NONE
Peter: „ Diese allgemeinen Informationen über die Histogramme sind jedem Datenbankad-
minstrator gut bekannt. Welche Besonderheiten von Histogrammen sind aber für die Praxis
besonders wichtig?
Leonid: „ Ich hatte mehrmals mit dem folgenden Problem zu tun. Wenn einige Spalten-
werte außerhalb der Histogramme liegen, stimmen die Schätzungen der Kardinalität dieser
Werte häufig nicht mehr, was zu einem nicht optimalen Ausführungsplan führt.
P.: „ Meinst Du irgendwelche neue Tabellensätze, die nach dem Erstellen der Histogramme
entstanden sind?
L.: „ Ganz genau. Angenommen, eine Spalte wird mit einem Sequenzwert oder mit dem
aktuellen Zeitstempel gefüllt. Bei solchen Spalten passiert es am häufigsten, dass die neuen
Spaltenwerte außerhalb der vorhandenen Histogramme landen. Nehmen wir das folgende
Besipiel:
Search WWH ::




Custom Search