Samstag, September 07, 2013

Histogramm Grundlagen

Jonathan Lewis hat bei AllThingsOracle eine Serie von Artikeln zum Thema Histogramme begonnen. Und wenn der Herr Lewis sich die Mühe macht, ein solches Thema in einer Artikelserie zu behandeln, dann kann man davon ausgehen, dass sich eine Verlinkung lohnt. Zumindest der erste Artikel erweckt dabei den Eindruck, dass es tatsächlich eher um Konzepte und Grundlagen geht als um Spezial- und Sonderfälle, aber ich höre dem Autor auch dann gerne zu, wenn ich das, was er erzählt, schon weiß - vielleicht höre ich dann sogar besonders gerne zu ...
  • Histograms Part 1 – Why?: beschäftigt sich mit den Grundlagen, der Gleichverteilungsannahme des CBO und den sich daraus ergebenden Problemen bei Ungleichverteilung (data skew). Als Lösung für solche Probleme kommen neben Histogrammen auf virtual columns in Frage. Vorgestellt wird das Konzept der frequency histograms und die klassischen Probleme der Histogramme werden erläutert (sie vertragen sich nicht mit Bindewerten; ihre exakte Ermittlung ist teuer; sampling führt oft zu schwachen Ergebnissen - Stichwort: auto_sample_size; man muss den richtigen Zeitpunkt für die Ermittlung treffen).
  • Histograms Part 2: mit einer umfassenden Diskussion von height-balanced histograms - und vor allem ihrer Schwächen. Der Artikel beginnt mit einer anschaulichen Erläuterung des Prinzips dieses Histogrammtyps, der dann verwendet wird, wenn die Anzahl unterschiedlicher Werte eine bestimmte Schwelle überschreitet (vor 12c waren das 254 mögliche Buckets), so dass nicht mehr jeder einzelne Wert ins Histogramm eingefügt werden kann, sondern die Endpunktwerte für gleichgroße Abschnitte der (sortierten) Gesamtmenge bestimmt werden müssen. Dabei werden Werte als populär gekennzeichnet, wenn sie mindestens zwei Buckets umspannen. Für extrem häufige Werte ist das kein Problem, aber Werte, die knapp weniger als zwei Buckets umfassen (und somit nahezu populär sind), werden in ihrer Kardinalität falsch eingeschätzt. Für die Schwächen der height-balanced histograms gibt es zwei Abhilfen: die manuelle Erzeugung geeigneter Histogramme und die in 12c ergänzten Histogrammtypen (top n histograms bzw. die Erhöhung der maximal möglichen Bucket-Anzahl).
  • 12c Histograms pt.3: ja, es ist kleinlich, aber was die einheitliche Benamung von Artikeln einer Serie angeht, gewinnt der Herr Lewis diesmal keine Punkte. Teil 3 jedenfalls erläutert die Implementierung von hybriden Histogrammen. Diese Strategie verschiebt die Endpunkte der Buckets bei einer Wertwiederholung und erfasst neben den Endpunkten der Buckets auch eine Information darüber, wie oft ein Endpunktwert wiederholt wurde, was die Bestimmung populärer Werte massiv verbessert. Wenn ich den vorangehenden Satz noch einmal lese, wird mir klar, dass er rein gar nichts erklärt - aber zu meiner Verteidigung muss ich sagen, dass mir auch die Erläuterung im Artikel erst nach wiederholter Lektüre und intensiverem Nachdenken klar wurde: die Erläuterung des Verfahrens ist also nicht ganz einfach...
Bei Erscheinen der folgenden Artikel werde ich diesen Eintrag wahrscheinlich ergänzen (was für Teil 2 und 3 nun erledigt wäre).

Keine Kommentare:

Kommentar veröffentlichen