Kurs Oracle 9i Einführung Performance Tuning Teil 12 Materialized Views Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 9 Seite 1 von 9
Agenda 1. Einführung Materialized Views 2. 3. Materialized View erstellen 4. Parametrisierung Materialized View 5. Materialized View erstellen & ändern Timo Meyer Wintersemester 2005 / 2006 Seite 2 von 9 Seite 2 von 9
1. Einführung Materialized Views Tabellen mit Daten basierend auf einer Abfrage Materialisierte Sicht (MV) ist physisch vorhanden Gegensatz: View nicht physisch vorhanden, sondern liest Spaltenwerte der Sicht unmittelbar aus den Tabellen Einführung Installation Beschleunigt den Zugriff Verbreitet in Data Warehouses (DWH) Stellt Snapshot (Momentaufnahme) einer Tabelle dar wenn Cost Based Optimizer entscheidet, dass Abfrage mit MV schneller geht, nimmt er auch die MV Schreibt die Abfrage automatisch um Privileg QUERY REWRITE muss gegeben sein Timo Meyer Wintersemester 2005 / 2006 Seite 3 von 9 Seite 3 von 9
2. Gegeben: 1 Million Datensätze in Tabelle ORDER_DETAILS Hinweis: ANALYSE nicht vergessen Folgende Abfrage dauert ca. 15 Sekunden SELECT orderid, count(*) FROM order_details GROUP BY orderid; Nach Erstellen einer materialisierten Sicht Abfragedauer ist lediglich noch 0,07 Sekunden Gesparte Zeit 99,53 % Seite 4 von 9 Timo Meyer Wintersemester 2005 / 2006 Seite 4 von 9
3. Materialized View erstellen Syntax für das Erstellen einer materialisierten Sicht CREATE MATERIALIZED VIEW mv1 BUILD IMMEDIATE REFRESH ON COMMIT ENABLE QUERY REWRITE AS SELECT orderid, count(*) FROM order_details GROUP BY orderid; MW erstellen Seite 5 von 9 Timo Meyer Wintersemester 2005 / 2006 Seite 5 von 9
4. Parametrisierung Materialized View REFRESH COMPLETE FAST COMPLETE Vollständiges Neuerstellen = Standardwert Materialisierte Sicht wird neu aufgebaut FAST nur die Veränderungen Bei FAST muss ein Log (?) erstellt werden Parametrisierung Neue Funktionen REFRESH (COMPLETE FAST) ON COMMIT DEMAND COMMIT (nach jedem COMMIT auf die Ursprungstabelle wird MV automatisch aktualisiert) REFRESH (geschieht durch dbms_snapshot.refresh('mv1')) BUILD IMMEDIATE DEFERRED IMMEDIATE Sofort DEFERRED nach dem ersten REFRESH Seite 6 von 9 Timo Meyer Wintersemester 2005 / 2006 Seite 6 von 9
5. Materialized View erstellen & ändern Berechtigung: CREATE MATERIALIZED VIEW Cost Based Optimizer muss verwendet werden Parameter QUERY_REWRITE_ENABLED = true; QUERY_REWRITE_INTEGRITY = enforced stale_tolerated Bei stale_tolerated auch veraltete Daten möglich wenn Einzelwerte uninteressant sind (z.b. Prozentuale Abfrage nach dem Anteil der männlichen Bevölkerung in Deutschland) Bei enforced keine veralteten Daten möglich Hilfreiche Einstellungen SET TIMING ON; SET AUTOTRACE ON EXPLAIN; Timo Meyer Wintersemester 2005 / 2006 Seite 7 von 9 Seite 7 von 9
Übung Materialized View Timo Meyer Wintersemester 2005 / 2006 Seite 8 von 9 Seite 8 von 9
Abfrage 3, 4 Momentaufnahme 3 Analyse 4 Parameter Berechtigung 7 QUERY_REWRITE_ENABLED 7 QUERY_REWRITE_INTEGRITY 7 Cost Based Optimizer 3, 7 4 Data Warehouses 3 Snapshot 3 Datensätze 3 Standardwert 6 Sysntax 5 Einstellung 7 Tabelle 4 Materialisierte Sicht 3, 6 Materialized View 3 Zugriff 3 Seite 9 von 9 Hinweis: Die Folien sind in Anlehnung an Schulungsunterlagen von der dama.go GmbH Potsdam zur Ausbildung zum Oracle Certified Professional Database Administrator 9i entstanden. Timo Meyer Wintersemester 2005 / 2006 Seite 9 von 9