Materialized Views speichern vorberechnete Ergebnisse und können wiederkehrende Aggregationen oder Joins deutlich beschleunigen. In Oracle AI Database 26ai kann die Datenbank geeignete Materialized Views automatisch aus der beobachteten Workload ableiten, ihre Wirkung messen und die Refresh-Kosten in die Bewertung einbeziehen.
1. Workload und Baseline zuerst erfassen
Bevor automatische Vorschläge bewertet werden, sollten typische SQLs, Ausführungszeiten, Datenvolumen, DML-Raten und bestehende Materialized Views bekannt sein. Besonders hilfreich ist eine Trennung zwischen stabilen Reporting-Abfragen und kurzfristigen Ad-hoc-Mustern. Nur so lässt sich später beurteilen, ob ein Vorschlag dauerhaft Nutzen bringt.
Auch Statistiken der Basistabellen und der Materialized Views gehören zur Ausgangslage. Der Optimizer trifft kostenbasierte Entscheidungen; veraltete Statistiken können daher sowohl die Auswahl einer View als auch die Entscheidung für Query Rewrite beeinflussen.
2. Nutzen und Refresh-Kosten zusammen betrachten
Der schnellere SELECT ist nur die eine Seite. Eine Materialized View muss erstellt, gespeichert, indexiert und aktualisiert werden. Bei häufigen Änderungen an den Basistabellen kann ein Refresh mehr Ressourcen benötigen als die spätere Abfrage einspart. Die erweiterten Automatic-MV-Funktionen in 26ai berücksichtigen deshalb neben dem Zugriffsnutzen auch Wartungs- und Refresh-Kosten sowie die Ausführungshäufigkeit.
Für die Praxis empfiehlt sich eine Betrachtung je Workload-Fenster: Wie wirkt sich der Refresh auf ETL, OLTP, Temp-Space, I/O und Batch-Laufzeiten aus? Ein MV-Vorschlag, der im Tagesreport überzeugt, darf nicht unbemerkt das nächtliche Ladefenster verlängern.
3. Query Rewrite nachvollziehbar machen
Query Rewrite erlaubt es dem Optimizer, eine Abfrage gegen eine passende Materialized View zu beantworten, ohne dass der Anwendungscode die View direkt referenzieren muss. Das ist leistungsfähig, kann aber für Entwickler und Betrieb zunächst unsichtbar sein. Dokumentieren Sie daher, welche kritischen SQLs von welcher View profitieren und unter welchen Freshness- und Rewrite-Einstellungen.
Bei Änderungen sollte geprüft werden, ob der Optimizer weiterhin die erwartete View verwendet. Oracles DBMS_MVIEW.EXPLAIN_REWRITE kann dabei helfen, die Rewrite-Möglichkeit einer Abfrage zu untersuchen. Zusätzlich gehören Ausführungsplan, Datenaktualität und fachliches Ergebnis in den Regressionstest.
4. Partitionierung und Refresh-Modell planen
Für partitionierte Basistabellen kann eine automatische Materialized View ebenfalls partitioniert angelegt werden. Das schafft gute Voraussetzungen für inkrementelle Refresh-Strategien und Partition Change Tracking, sofern die konkrete Tabellenstruktur und die Refresh-Bedingungen dafür geeignet sind.
Definieren Sie pro View, ob ein schneller, vollständiger, manueller oder zeitgesteuerter Refresh benötigt wird. Bei Reports mit klarer Staleness-Toleranz kann ein zeitversetzter Refresh sinnvoll sein. Bei operativen Kennzahlen muss dagegen festgelegt werden, wann eine veraltete View nicht mehr für Rewrite verwendet werden darf.
5. DBA-Checkliste für die Freigabe
- Workload, SQL-Baseline, Datenaktualität und Service-Level dokumentieren.
- Refresh-Methode, Intervall, Temp-Space, I/O und Speicherbedarf bewerten.
- Query Rewrite für kritische Abfragen mit Plan- und Ergebnistests prüfen.
- Partitionierung und mögliche inkrementelle Refresh-Verfahren verifizieren.
- Monitoring für Refresh-Dauer, Staleness, Fehler und Speicherverbrauch einrichten.
- Owner, Freigabe, Ausschlussregeln und Rückfallweg im Change-Prozess festhalten.
Fazit
Oracle AI Database 26ai erweitert Automatic Materialized Views um eine breitere Kostenbetrachtung und zusätzliche Rewrite-Möglichkeiten. DBAs behalten die Verantwortung für Datenaktualität, Ressourcenlimits und Regressionstests. Mit einer sauberen Baseline und sichtbarem Monitoring wird aus automatischer Optimierung ein kontrollierbarer Teil des Datenbankbetriebs.
Weiterführend: Oracles Dokumentation zu Automatic Materialized Views, die Einführung in Query Rewrite und die Neuerungen in Oracle AI Database 26ai.