Oracle „Lizenzfalle“ Oracle Standard Edition und Oracle Text Indizes

Nutzt man Oracle Text Indizes in einer Oracle Standard Edition tappt man ungewollt in eine Lizenzfalle. In einer Standard Edition Datenbank darf man keine Index Key Compression nutzen. Im Oracle 19c License Guide findet man dies als Prefix Compression ganz eindeutig:

Oracle hat den Default für die X$INDIZES, die mit Oracle Text Indizes angelegt werden, auf COMPRESS 2 – und somit Prefix Compression – festgelegt. Sobald man somit einen Oracle Text Index anlegt, findet man in DBA_INDEXES folgendes:

 INDEX_NAME        COMPRESSION    
------------------ ---------------
DR$KD_NAME1$X      ENABLED        
DR$KD_NAME2$X      ENABLED        
DR$KD_STRASSE$X    ENABLED        
...

Im Fall eines Lizenzaudits wird Oracle dies beanstanden und auf die Lizenzierung einer Enterprise Edition bestehen. Man findet diese Nutzung auf in der DBFUS.

select name, DETECTED_USAGES, LAST_USAGE_DATE 
  from dba_feature_usage_statistics 
 where name='Advanced Index Compression';

NAME                           DETECTED_USAGES LAST_USAG
------------------------------ --------------- ---------
Advanced Index Compression                   2 01-MAR-26

Oracle Text Indizes in SE2 lizenzkorrekt anlegen

Plant man somit in eine Nutzung von Oracle Text Indizes in der Standard Edition, muss man vor dem Erstellen der Indizes folgende Schritte durchführen:

Den Default auf NOCOMPRESSED Indizes umstellen:

begin
  ctx_ddl.create_preference('NOCOMPRESS_STORE', 'BASIC_STORAGE');
  ctx_ddl.set_attribute('NOCOMPRESS_STORE', 'I_INDEX_CLAUSE','NOCOMPRESS');
end;
/

Die bestehenden Indizes muss man nachträglich entsprechend rebuilden:

alter index <index_name> rebuild 
      parameters ('replace storage NOCOMPRESS_STORE');

Alternativ kann man dies auch beim Anlegen eines Index angeben:

create index T1_Test on t1(object_name) 
       indextype is ctxsys.context parameters('storage NOCOMPRESS_STORE');

Zusammenfassung

Plant man somit die Nutzung von Oracle Text Indizes in einer Standard Edition 2, muss man im Vorfeld die Hausaufgaben machen und den Default für die Indizes auf NOCOMPRESS umstellt.