Tipps & Tricks: Heat Maps Bereich: SQL Erstellung: 08/2013 MP Versionsinfo: 12.1 Letzte Überarbeitung: 08/2013 MP Heat Map (ADO mittels ILM) Die Heat Map zeichnet auf Blockebene den Datenzugriff und die Veränderungshäufigkeit auf. Mit diesem Wissen kann man Daten, die selten verwendet oder verändert werden, an Ort und Stelle komprimieren und auf einen anderen Tablespace (auf ein langsameres und billigeres Medium) verschieben. Für die Funktionen der Heat Map, der ADO (Advanced Data Optimization) und ILM (Information Lifecycle Management) benötigen Sie die Enterprise Edition + Advanced Compression Option. All diejenigen unter Ihnen, die das lizenziert haben, dürfen hier weiterlesen :-) Sie können die Heat Map ein- oder ausschalten: ALTER SYSTEM SET heat_map = ON|OFF; Wenn Sie Heat Maps nicht eingeschaltet haben und versuchen darauf zuzugreifen, erhalten Sie: ORA-38342: Wärmebild nicht aktiviert ? Im Englischen klingt das etws besser: ORA-38342: heat map not enabled Die Heat Map kann über folgende V$*, ALL*, DBA* und USER* Views angezeigt werden. Heat Map für die Top 1000 Objekte: SELECT * FROM dba_heatmap_top_objects; Heat Map für die Top 100 Tablespaces: SELECT * FROM dba_heatmap_top_tablespaces; Zeitpunkt des letzten Segmentzugriffs: USER_/ ALL_/ DBA_HEAT_MAP_SEGMENT Segmentzugriffsinformationen für (alle) Segmente: Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 1 von 4 USER_/ ALL_/ DBA_HEAT_MAP_SEG_HISTOGRAM Ausgabe des Lese- bzw. Schreibzugriffs auf Objekte sowie des Zeitstempels des Auftretens: SELECT object_name, track_time, segment_write, segment_read, full_scan, lookup_scan FROM v$heat_map_segment; Erklärung der Spalten: Segment Write: Segment wurde verändert (INS/UPD/DEL) Segment Read: Segment wurde gelesen Full Scan: Objekt wurde durch Full Scan gelesen Lookup Scan: Objekt wurde über Index gelesen ADO kümmert sich um ein automatisches Komprimieren oder Verschieben von "Alt" Daten (gesteuert über Policies), die wenig genutzt wurden. Mehrere Policies können additiv auf das Objekt gesetzt werden. Policynamen werden automatisch vergeben (p1, p2, ...pn) Voraussetzung ist aktiviertes Heat Map und keine CDB (Container DB). Mögliche Komprimierungstechniken (nur pro Segment einstellbar): COMPRESS ADVANCED COMPRESS FOR LOW|HIGH QUERY COMPRESS FOR ARCHIVE LOW|HIGH ILM Syntax: ALTER TABLE [<owner>.]<table_name> ILM { ADD POLICY ilm_policy_clause | { DELETE | ENABLE | DISABLE } POLICY ilm_policy_name | DELETE_ALL | ENABLE_ALL | DISABLE_ALL } ilm_policy_clause: { table_compression | tiering_clause } { SEGMENT | GROUP | ROW } {{ AFTER number { { DAY | DAYS } | { MONTH | MONTHS } | { YEAR | YEARS } } OF { { LOW ACCESS } | { NO ACCESS } | { NO MODIFICATION } | CREATION } } | ON function_name } tiering_clause: TIER TO tablespace [ READ ONLY ] Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 2 von 4 Hinweis: Sie können die ILM Klausel auch bei einem CREATE TABLE verwenden. Policies können gesetzt werden auf: Zeilenebene (ROW) => Wenn alle Zeilen des Blocks nicht angefasst wurden Segmentebene (SEGMENT) => Komplette Tabelle Gruppe (GROUP) => Leider steht dazu (derzeit) nichts in der Dokumentation Zeitspannen für Aktivierung der Policy: Tage Monate Jahre Zugriffsformen für Aktivierung der Policy: LOW ACCESS (Wenig Zugriffe auf das Objekt) NO ACCESS (Kein Zugriff auf Objekt) NO MODIFICATION (Keine schreibender Zugriff) CREATION (Erstellungszeitpunkt des Objekts) Hinweis: Die Policies werden im Wartungsfenster geprüft und ggf. ausgeführt. Sie können wenig benutzte Partitionen einer part. Tabelle auf einen anderen Tablespace verschieben, wenn der lokale Tablespace beginnt voll zu laufen: ALTER TABLE emp_part ILM ADD POLICY TIER TO TABLESPACE tbs_on_sata_hdd; Weitere Beispiele zum Einsatz von ILM: Partition DEPT_2012 komprimieren, wenn 6 Monate kein (Lese-, Schreib-) Zugriff darauf erfolgte: ALTER TABLE scott.emp_part MODIFY PARTITION dept_2012 ILM ADD POLICY COMPRESS FOR ARCHIVE HIGH SEGMENT AFTER 6 MONTHS OF NO ACCESS; Tabelle EMP blockweise komprimieren, wenn auf Zeilen 30 Tage nicht schreibend zugegriffen wurde: ALTER TABLE scott.emp ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 30 DAYS OF NO MODIFICATION; Partition dept_2014 der Tabelle deptp komprimieren, wenn auf Zeilen 12 Monate nicht (lesen/schreibend) zugegriffen wurde: ALTER TABLE scott.deptp MODIFY PARTITION dept_2014 ILM ADD POLICY COMPRESS FOR Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 3 von 4 ARCHIVE HIGH SEGMENT AFTER 12 MONTHS OF NO ACCESS; Policy, um die Partition dept_10 der Tabelle emp_part auf günstigeren Tablespace zu verschieben: ALTER TABLE scott.emp_part MODIFY PARTITION dept_10 ILM ADD POLICY TIER TO tablespace_auf_sata_platte; Heat Maps sind praktisch, wenn Sie ihr teures SAN nur für die Daten verwenden möchten, die auch wirklich häufig gelesen/geschrieben werden. Weitere 299 Neuerungen erfahren Sie in unseren Oracle 12c Kurs (ab September 2013 bei uns in München-Unterhaching, oder als Inhouse Kurs bei Ihnen ab sofort) Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 4 von 4