Oracle Database In-Memory Base Level für 19c
Oracle Database In-Memory ist mittlerweile seit der Version 12.1 als Option zur Enterprise Edition verfügbar und wird im Bezug auf Features und Kombatibilität zu den Kernfunktionen der Datenbank ständig weiterentwickelt.
Im Zuge des ersten 20c Previews im Frühjahr, hat Oracle das Feature Oracle Database In-Memory Base Level vorgestellt, welches Basisfunktionen der In-Memory Option auch ohne Zusatzkosten für Enterprise Edition Nutzer zur Verfügung stellt. Mit dem Release Update 19.8 hat Oracle diese Funktionalität nun auch in die 19er Welt zurückportiert, so dass dies auch für aktuelle Nutzungsszenarios interessant wird. (Ausnahme Windows und HP-UX, dort ist die Freigabe für 19.9 geplant).
Rahmenbedingungen:
–Bis zu 16 GB RAM pro Instanz nutzbar (damit auch pro RAC Instanz)
- Wird auf CDB Ebene definiert
- PDBs bedienen sich aus der CDB
–Einfache Konfiguration durch DBA
–Kein Zugriff auf Applikationen oder Code notwendig
nutzbare Features:
–Tabellen (internal/external), Partitionen, Materialized Views und Tablepaces in den In-Memory-Store laden
–Expressions: Werte, Operationen oder deterministische SQL Funktionen (die einen Wert zurückliefern) werden als „virtuelle“ Spalten im In-Memory Store abgelegt
–Join Groups: Benutzerdefiniertes Objekt (Spalten mehrerer Tabellen, die in Joins verwendet werden)
–Aggregation durch „Vector group by“ während des Scans der Tabellen (statt Summierung des ResultSets)
–In-Memory Fast Start (Ablage des Column Stores in einem eigenen Tablespace)
–RAC ($$$): Jede Instanz kann eigene Objekte im In-Memory ablegen.
Performancegewinne:
–Direkter Zugriff bei Filter-Operationen wie <, >, =, IN
–Zugriff auf wenige Spalten einer Tabelle mit vielen Spalten
–Schnelle In-Memory Suche von Text, XML oder in JSON Dokumenten mit „contains()“ oder „JSON_textcontains()“
–Durch Entfall von Buffer Cache overhead (und z.B. durch Einlesen von Index- und Tabellendaten)
–IMCU Pruning: Nur IMCUs werden durchsucht, die den Wert auch enthalten können
–Komprimierung: Where-Clauses können gegen komprimierte IMCUs getestet werden – ohne Dekomprimierung
–Vector Prozessing: Jeder CPU Core kann „Single Instructional, Multiple Data“ Vector Befehle für den Scan benutzen (Array bearbeiten)
–Bei Joins durch Verwendung von Bloom Filter (was mögliche Daten vorab eliminiert)
–Bei Joins von kleinen „Dimension Tables“ mit einer großen „Faktentabelle“
–Bei Joins mit Primary Key – Foreign Key – Relationship
Nicht enthalten im Base Level:
–Kein Automatisches In-Memory (AIM)
–„Nur“ Memcompress for query low
–Cellmemory ist auf Exadata disabled (Flash Cache für Buffer Cache bleibt verfügbar)
–Nicht verfügbar für 3rd-Party Cloud Installationen!
–Nur ganze Tabellen (kein „Exclude Column“ möglich)
Fazit:
Mit Oracle Database In-Memory Base Level können Enterprise Edition Kunden auch ohne Mehrkosten die Vorteile der spaltenorientierten In-Memory Zugriffe (wenn auch mit Limitationen) nutzen. Einige Kundenbeispiele haben gezeigt, dass bei Einsatz des Features im Umfeld DWH und Mixed Workload, weitreichende Performancegewinne für limitierte Datenmengen erzielt werden können.
Für weitere Fragen stehen wir Ihnen zur Verfügung und unterstützen Sie gern bei der Einführung von Oracle Database In-Memory (Base Level).
Kommentare
Keine Kommentare