Am 30. April 2020 hat Oracle bekannt gegeben, dass ab Oracle 20c die Nutzung eines maximal 16GB großen Column Stores (Oracle In-Memory) für die Enterprise Edition gratis ist.
Um das korrekt umzusetzen, muss man den Instance Parameter INMEMORY_FORCE auf BASE_LEVEL stellen. Danach kann man die INMEMORY_SIZE auf maximal 16GB konfigurieren ohne gleich die In-Memory Option kaufen zu müssen. Da ab Oracle 20c alle Datenbanken Multitenant sein müssen, ist es wichtig zu erwähnen, dass diese maximal 16GB für die ganze Instanz gelten - sprich alle PDBs teilen sich dieses Memory.
Gleichzeitig hat Oracle die In-Memory Funktionalität im BASE_LEVEL eingeschränkt. Folgende Funktionen stehen nicht zur Verfügung:
-
Automatic In-Memory (AIM) ... sprich man muss manuell bestimmen welche Tabellen in den In-Memory Column Store kommen sollen
-
MEMCOMPRESS darf nur auf FOR QUERY LOW sein - der niedrigsten Einstellung. Höhere MEM-Compression Levels würden zu einer besseren Ausnutzung der wenigen GB führen, das will man offensichtlich nicht
-
EXCLUDED COLUMNS ist nicht möglich - sprich alle Spalten der Tabellen wandern in den Column Store. Workaround: Man müsste notfalls die Tabelle aufteilen, wenn man nur wenige Spalten im Column Store benötigt und es sich sonst nicht ausgehen würde.
-
CELLMEMORY (Exadata) ist nicht enthalten.
Weitere Informationen finden Sie in der Produktankündigung seitens Oracle.
Wichtiges Update
Oracle hat In-Memory BASE_LEVEL mit den Juli 2020 RU schon ab Oracle 19.8 zur Verfügung gestellt. Man muss nicht auf Oracle 20c warten, man kann es schon in der aktuellen Oracle 19c nutzen!
Offiziell angekündigt hat dies Mike Dietrich in seinem Blog am 20. Juli 2020. In der Oracle Lizenzdokumentation dürfte es am 19. Juli 2020 Einzug gehalten haben.