Heat Map Funktionen in 12c
von Ulrike Schwinn, Oracle Deutschland B.V. & Co. KG
Neu mit Oracle Database 12c ist die Möglichkeit Information Lifecycle Management (ILM) nun direkt innerhalb der Oracle Datenbank zu verwenden. Kein Skripting oder gar die Installation separater Werkzeuge ist dazu erforderlich. ILM in der Datenbank beinhaltet mehrere Funktionen wie zum Beispiel die Automatischen Daten Optimierung und die Heat Map. Die Automatische Daten Optimierung ermöglicht beispielsweise die Verlagerung und/oder Komprimierung von Daten gemäß nutzer-definierter Regeln (englisch policies). Als Grundlage dient die sogenannte Heat Map, die unabhängig von der Automatischen Daten Optimierung aktiviert und über verschiedene Schnittstellen der Datenbank wie Data Dictionary Views, PL/SQL Packages und Enterprise Manager Cloud Control genutzt werden kann.
Was sind nun Heat Maps (auch Heatmaps)? In Wikipedia findet man beispielsweise folgende Definition: "Eine Heatmap (englisch: heat = "Hitze", "Wärme"; map = "Karte") ist ein Diagramm zur Visualisierung von Daten, deren abhängige Werte einer zweidimensionalen Definitionsmenge als Farben repräsentiert werden. Sie dient dazu, in einer großen Datenmenge intuitiv und schnell besonders markante Werte zu erfassen."
Bei der Oracle Datenbank handelt es sich bei den Heat Map Daten um system-generierte Statistiken, die die Nutzung wie Schreib- und Lesezugriffe auf Segment- bzw. auf Row-(Block) Ebene beschreiben. Diese Informationen können dann beispielsweise dazu verwendet werden, eine Komprimierung und/oder eine Verlagerung der Daten durchzuführen. Zusätzlich seit Version 12.1.0.2 gibt es sogar eine weitere Heat Map für den Bereich In-Memory Column Store, die die Nutzungsstatistiken der In-Memory Database anzeigt.
Die Aktivierung
Die Heat Map wird mit einem einzigen dynamischen Parameter eingeschaltet. Der Default Wert ist übrigens OFF.
Einmal aktiviert werden automatisch Heat Map Segment (Row) Statistiken bzw. Statistiken für die Nutzung des In-Memory Column Store gesammelt. Um die Statistiken der Anwender nicht zu verfälschen, werden keine administrative Operationen wie DDL Kommandos oder Backups aufgezeichnet.
Aktueller Hinweis: Das Feature steht im Moment (Stand Release 12.1.0.2) nur mit einer Nicht Container (Non CDB) Umgebung zur Verfügung. Dies wird sich in den kommenden Release Zyklen ändern.
Nach der Aktivierung ermöglichen neue Views das Monitoring: Die Heat Map Daten werden initial im Hauptspeicher abgelegt; über die View $HEAT_MAP_SEGMENT wird dann eine Schnittstelle zu den realtime Segment Zugriffen gewährleistet. Periodisch - einmal pro Stunde - werden danach die Daten vom Hintergrundprozess MMON in Data Dictionary Views wie z.B. DBA_HEAT_MAP_SEGMENT geschrieben.
Statistiken für den Segmentzugriff an Beispielen
Um die Funktionsweise zu demonstrieren, führen wir nach der Aktivierung einige Zugriffe auf eine Hilfstabelle (hier H_TEST) durch und sehen uns die Ergebnisse in den Heat Map Views an. Zuerst überprüfen wir, ob das Heat Map Feature eingeschaltet ist.
Nun erzeugen wir beispielsweise im Schema SCOTT die Tabelle H_TEST als Kopie der View ALL_OBJECTS. Die Spalte OBJECT_ID wird indiziert.
Nach der kleinen Vorbereitung fügen wir die Inhalte der ALL_OBJECTS View ein und beenden die Transaktion mit COMMIT.
Hinweis: Nur mit COMMIT abgeschlossene Transaktionen werden aufgezeichnet.
Im weiteren Verlauf der Testreihe werden Index Lookups und Full Table Scans durchgeführt. Die Beispielabfragen könnten wie folgt aussehen.
Wie oben schon erwähnt, werden die Heat Map Daten initial im Hauptspeicher abgelegt.
Um einen Einblick in diese Informationen zu erhalten, selektieren wir zuerst den Inhalt der View
V$HEAT_MAP_SEGMENT. Je nach durchgeführter Operation sind nun einige Spalten mit YES gekennzeichnet. Die Spalte TRACK_TIME stellt dabei die aktuelle Systemzeit dar.
Ähnlich wie bei den Active Session History Daten und den Workload Repository Views werden diese Daten dann periodisch - mindestens einmal pro Stunde - in das Data Dictionary gespeichert und können dann über die Views DBA_HEAT_MAP_SEG_HISTOGRAM und DBA_HEAT_MAP_SEGMENT selektiert werden.
Mit der Prozedur FLUSH_ALL_SEGMENTS des Package DBMS_ILM kann sogar eine sofortige Aktualisierung initiiert werden, wie in folgendem Fall zu sehen ist.
Zum Abschluss kontrollieren wir wieder V$HEAT_MAP_SEGMENT und stellen fest, dass die letzte Speicherung im Data Dictionary und somit das letzet Zurückschreiben um 11:47 stattgefunden hat.
Möchte man einen Gesamtüberblick über die Zugriffe der 100 aktivsten (Top 100) Objekte und Tablespaces erhalten, kann man die beiden Views DBA_HEATMAP_TOP_OBJECTS und DBA_HEATMAP_TOP_TABLESPACES zu rate ziehen oder gleich in der visualisierten Heat Map Darstellung im Enterprise Manager Cloud Control nachsehen.
Möchte man die Zugriffe auf Block-, Segment-, Extent- oder Tablespace- Ebene überwachen, eignet sich die Verwendung des Package DBMS_HEAT_MAP.
Hinweis: Möchte man mehr Details über die Art der Zugriffe auf Tabellen und auch auf zugehörige Spalten erhalten, eignet sich zusätzlich die Verwendung der Views DBA_TAB_MODIFICATIONS oder SYS.COL_USAGE$ (siehe auch Blogeintrag Tabellen Monitoring mit DBA_TAB_MODIFICATIONS und SYS.COL_USAGE$ ).
Visualisierung der Segmentzugriffe
Nun fehlt natürlich noch die graphische Darstellung im Enterprise Manager Cloud Control.
Ist die Heat Map eingeschaltet, kann man direkt in Cloud Control 12c Release 4 zur Heat Map Seite über "Administration => Storage => Information Lifecycle Management" navigieren. Als Erstes erhält man eine Database Level Ansicht mit den entsprechend eingefärbten Tablespaces; die Farbe Rot steht dabei für hohe Aktivität. Bitte berücksichtigen Sie, dass die Anzeige nicht für realtime Anforderungen programmiert ist; erst mit etwas Verzögerung wird die Ansicht aktualisiert. Auf der linken Seite unterhalb der Graphik kann man dabei die Ansicht nach Zugriffsart wie z.B. LAST FULL TABLE SCAN DATE einstellen. Scrollt man weiter nach unten erhält man einen Bericht über die Tablespace Zugriffsaktvitäten im Einzelnen.
Ein Klick auf einen Tablespacenamen z.B. USERS führt zur Tablespace Level Heat Map.
Auch hier erscheint unterhalb der Graphik eine detaillierte Ansicht über die Aktivitäten der Objekte im entsprechenden Tablespace. Werden Partitionen verwendet, lohnt sich ein weiterer Drill Down auf Object Level Heat Map Ebene um die entprechenden Aktivitäten der Partitionen zu überwachen.
Visualisierung der In-Memory Database Objektzugriffe
Die In-Memory Object Page im Enterprise Manager ist über die Menüpunkte "Administration=> In Memory Central" zu erreichen. Hier können Einstellungen der In-Memory Datenbank, der Compression Faktor und weitere Eigenschaften der einzelnen Objekte im Column Store eingesehen werden. Zusätzlich können die Zugriffe auf die Column Store Objekte graphisch in einer Heat Map angezeigt werden.
Wie bei der Segment Heat Map ist auch hier die Aktivierung über den HEAT_MAP Parameter erforderlich. Die Heat Map zeigt die relative Größe und die Zugriffsfrequenz der Objekte im Columnstore mit verschiedenen Einfärbungen an. Wie zu erwarten bedeutet die Einfärbung mit roter Farbe eine hohe Zugriffsrate, die Einfärbung Blau das Gegenteil. Da der Anwender selbst entscheidet, welche Objekte in den Columnstore geladen werden, sollte es das Ziel sein, besonders viele rote Bereiche in der Heat Map zu sehen. Die blauen Bereiche hingegen können eine unnütze Speicherverschwendung anzeigen.
Fazit
Die Heat Map Funktionen liefern eine neue Möglichkeit Zugriffsverhalten auf Objekte und Tablespaces zu monitoren. Im Gegensatz zu den traditionellen Techniken über die verschiedensten Data Dictionary Views wie DBA_TAB_MONITORING, SYS.COL_USAGE$ usw., besteht mit der Heat Map die Möglichkeit schnell und ohne viel Aufwand einen guten Gesamtüberblick über das Zugriffsverhalten zu erhalten. Auf dieser Basis kann der DBA schnell verifizieren, welche Tablespaces oder Objekte im häufigen oder weniger häufigen Zugriff sind. Speziell auch die graphische Implementierung im Enterprise Manager hilft dabei einen guten Gesamtüberblick auf den verschiedenen Ebenen zu erhalten.
Lizenzierungshinweis
Die Nutzung der Heat Map erfordert die Lizenzierung der Oracle Advanced Compression Option.
Weitere Informationen
Zurück zur Community-Seite
|