DOAG Datenbank Kolumne: In-Memory Base-Level, der Turbolader für die Enterprise Edition

  • Erstellt von Bruno Cirone
  • Datenbank Kolumne, Oracle, Datenbank

Ab der Version 19.8 hat Oracle die In-Memory Base-Level-Option für alle Enterprise-Edition-Kunden freigegeben.

Ursprünglich sollte dies erst ab Version 20.x erfolgen. Im Base-Level können maximal 16 GB als In-Memory konfiguriert und verwaltet werden. Die 16 GB gelten pro CDB beziehungsweise pro Single-Instance. Die Verteilung auf die PDBs sollte entsprechend berücksichtigt werden.

Natürlich gibt es noch weitere Einschränkungen wie zum Beispiel kein "exclude Columns" oder Compression nur für "Memcompress for query low". Viele dieser Einschränkungen (z.B. exclude von Columns) können auch ganz offiziell mit Materialized Views umgangen werden. Auch eine Materialized View kann als In-Memory-Tabelle verarbeitet werden.

Die Konfiguration ist in einfachen Schritten durchführbar. Bei dem folgenden Beispiel (Listing 1) soll die Tabelle BCC.X1 mit der In-Memory Base-Level-Option verwaltet werden:

 

Alter system set inmemory_force=base_level scope=spfile;
Alter system set inmemory_size=16G scope=spfile;


Shutdown immediate

Startup


Alter table bcc.x1 inmemory priority high;


Select segment_name,inmemory_size,bytes_not_populated
  from v$im_segments;

 

SEGMENT_NAME INMEMORY_SIZE  BYTES_NOT_POPULATED
------------------------------  ---------------
X114456448  0
   

 

Listing 1: Konfiguration der Tabelle BCC.X1 mit der In-Memory Base-Level-Option

 

Was ist für eine Performance zu erwarten?

Natürlich sollte jetzt nicht jede Tabelle mit In-Memory verarbeitet werden, aber bei folgendem Beispiel war das Ergebnis hervorragend.

Bei einem Spediteur wurden in einer Tabelle circa 50 bis 80 Millionen Datensätze verwaltet. Auf dieser Tabelle existiert ein Index auf die Spalte feld1. Die Abfragen hierauf lauten (Listing 2):

 

Ohne In-Memory mit Index auf feld1:

Select min(feld1), max(feld1), count(feld1), sum(feld1)
from X1;

Elapsed: 00:00:45.34

 

Mit In-Memory ohne Index:

Elapsed: 00:00:00.42

 

Listing 2: Abfragen auf Tabelle mit circa 50 bis 80 Millionen Datensätzen

 

Was für eine erstaunliche Verbesserung der Antwortzeit zum "Null-Tarif".

 Auf jeden Fall sollten Sie vor dem Einsatz der In-Memory Base-Level-Option folgende Quellen lesen:

Ich wünsche Ihnen viel Erfolg bei der Umsetzung. Sollten Sie Fragen haben, können Sie mich gerne kontaktieren.

Ihr Bruno Cirone

Mitglied der Delegiertenversammlung und Themenverantwortlicher Security in der Database Community

E-Mail: bruno.cirone@~@doag.org