Kapitel 26
Administration von Data Warehouse-Datenbanken
616
Warehouse-Datenbanken besonders interessant für die Verbindung von Fact und
Dimension Tables.
Für Bitmap Join-Indexe existieren folgende Einschränkungen:
Parallele DML-Anweisung an der Fact Table werden nicht unterstützt.
Bitmap Join-Indexe können nicht für IOT und temporäre Tabellen gebildet
werden.
Jede Tabelle darf nur einmal in der Vereinigung auftreten.
Es darf nur eine Tabelle gleichzeitig geändert werden.
Die Spalten der Dimension Table müssen ein Primärschlüssel sein oder einen
Unique Constraint aufweisen.
26.3 Materialized Views (MV)
Materialized Views werden im Data Warehouse zum Replizieren von Daten und
für das Summary Management verwendet. In den Anfängen des Data Warehouse
wurde die Summenbildung häufig vernachlässigt. Die Folge war eine schlechte
Performance, da die Informationen häufig mit Full Table Scans (FTS) auf den Fact
Tables gesammelt wurden. Dabei ist nicht nur die Tatsache zu beachten, dass die
Abfragen selbst lange laufen; sie binden auch Ressourcen, die dringend für andere
Abfragen benötigt werden, und reduzieren damit die Performance des Data
Warehouse in seiner Gesamtheit.
Inzwischen hat man erkannt, dass Summen den wohl wichtigsten Einfluss auf die
Geschwindigkeit von DSS-Abfragen ausüben. Folgerichtig wurde der Begriff Sum-
mary Management eingeführt. Das Summary Management beschäftigt sich mit
allen Methoden zur Summenbildung im Data Warehouse.
Die Oracle 12c-Datenbank selbst bietet eine Reihe von Features für das Summary
Management an. Mit Query Rewrite (deutsch: »Neuschreiben der Abfrage«) wird
eine SQL-Abfrage durch die Oracle-Datenbank geändert. Dabei wird das Materiali-
zed View mit den summierten Werten anstelle der Originaltabelle verwendet. Der
SQL> CREATE BITMAP INDEX i_status_key_join
2 ON account_facts(status_dim.status_key)
3 FROM account_facts, status_dim
4 WHERE account_facts.status_key =
status_dim.status_key
5 TABLESPACE dwhind
6 PARALLEL (DEGREE DEFAULT)
7 LOCAL;
Index wurde angelegt.
Listing 26.14: Einen Bitmap Join-Index anlegen
26.3
Materialized Views (MV)
617
SQL Access Advisor gibt Empfehlungen zur Erstellung und Verwendung von
Materialized Views in Abhängigkeit vom aktuellen Workload.
Im Data Warehouse werden Materialized Views für folgende Zwecke erstellt:
Bildung von Summen zur Beschleunigung der Abfragen. Summenbildung be-
deutet, dass eine oder mehrere Dimensionen herausgestrichen werden.
Erstellen von Vereinigungen über mehrere Dimensionen. Es werden keine
Summen gebildet, sondern eine Fact Table mit mehreren Dimension Tables
vereinigt. Man spart sich später die Vereinigungen in den SQL-Abfragen, die
lange laufen und viele Ressourcen verschlingen.
Materialized Views können verschachtelt werden, d.h. ein Materialized View
basiert auf der SQL-Abfrage eines anderen. Verschachtelte MVs werden häufig
verwendet, um Summen über MVs zu bilden, die zur Vereinigung mehrerer
Dimensionen erstellt wurden.
Für Materialized Views existieren die beiden Refresh-Methoden »FAST« und
»COMPLETE«. Mit der Methode COMPLETE wird ein kompletter Neuaufbau des
MV vorgenommen. Diese Methode läuft bei großen Tabellen sehr lange, ver-
braucht viele Ressourcen und ist deshalb für ein Data Warehouse relativ uninteres-
sant. Die Methode FAST REFRESH speichert die Änderungen und arbeitet diese
in den MV ein. Das ist die bevorzugte Methode für eine Data Warehouse-Daten-
bank. Sie können alternativ das Schlüsselwort »FORCE« verwenden, dann führt
Oracle ein »FAST REFRESH« durch, wenn das möglich ist, sonst ein »COM-
PLETE REFRESH«.
Für die Methode FAST REFRESH wird ein Materialized View Log benötigt. Darin
werden die Änderungen zur Aktualisierung des MV gespeichert. Physisch ist ein
Materialized View Log eine Tabelle.
Im folgenden Beispiel soll ein Materialized View über die Fact Table account_facts
mit dem Ziel der Summenbildung erstellt werden. Es sollen Summen pro
Geschäftsstelle, Produkt und Zeitraum gebildet werden, d.h. die Dimensionen
customer_dim und status_dim werden ausgelassen.
Für die Aktualisierung soll die FAST REFRESH-Methode verwendet werden. Dazu
ist es erforderlich, ein Materialized View Log für die Tabelle account_facts zu erstel-
len.
Hinweis
OLAP-Werkzeuge wie Business Objects bieten ebenfalls ein Summary Manage-
ment an, vor allem das Neuschreiben der Abfrage. Nutzen Sie möglichst die
Oracle-Features. Diese sind in der Datenbank integriert und damit unabhängig
vom Werkzeug, mit dem die SQL-Abfragen gestellt werden.

Get Oracle 12c - Das umfassende Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.