De søkeindekser støttes i en oracle database av såkalt Context index. Implisit, om lagringsparametre ikke angis, lagres de
indeks tabellene i DEFAULT USER TABLESPACE, dvs at både Context
indekstabeller og tabeller de bygges på (de bygges på CLOB-kolonner
hovedsakelig) ligger i samme tablespace
Det siste trekk forårsaker ekstra konkurranse mellom parallele Input/Output prosesser og synker hastighet vesentlig. For å minske konkurranse mellom parallelle Input/Output prosesser plasseres alle CONTEXT index tabeller (for alle applikasjonene) i en felles Local Managed tablespace. Løsningen øker hastighet siden leseprosesser av CLOB-kolonner og skriveprosesser av Context indekstabeller blir uavhengige fra hverandre.
Local Managed (LM) øker hastighet i enda større grad siden denne typen av tablespace ikke bruker Data Dictionary.
Når context-indeksen opprettes eller ombygges brukes en preferanse for å angi hvor skal indeksen lagres. Preferanse er et objekt av klassen Storage, som lagres i skjemaet CTXSYS. Vi har opprettet en preferanse TBLSP_TEXT_INDEX i CTXSYS skjema. I dette tilfellet, kan preferansen brukes av alle uten noen ekstra privilegier.
As CTXSYS:
begin
ctx_ddl.create_preference ('tblsp_text_index','BASIC_STORAGE');
ctx_ddl.set_attribute ('tblsp_text_index','I_TABLE_CLAUSE',
'tablespace text_index');
ctx_ddl.set_attribute ('tblsp_text_index','K_TABLE_CLAUSE',
'tablespace text_index');
ctx_ddl.set_attribute ('tblsp_text_index','R_TABLE_CLAUSE',
'tablespace text_index');
ctx_ddl.set_attribute ('tblsp_text_index','N_TABLE_CLAUSE',
'tablespace text_index');
ctx_ddl.set_attribute ('tblsp_text_index','I_INDEX_CLAUSE',
'tablespace text_index');
ctx_ddl.set_attribute ('tblsp_text_index','P_TABLE_CLAUSE',
'tablespace text_index');
end;
Ved oppretting av context index kan utviklerne bruke denne felles preferance:
CREATE
INDEX
[<skjema_navn>.]<index_navn>
ON [<skjema_navn>.]<table_navn>
(<col_navn>)
INDEXTYPE IS CONTEXTINDEX
PARAMETERS
( ’STORAGE CTXSYS.TBLSP_TEXT_INDEX
[, <class_navn> <preferance_navn>, …]);
Exempel:.
CREATE INDEX DIPLOM_SGMLTEKST_C_INDEKS ON
DIPLOMER (SGMLTEKST) INDEXTYPE IS CONTEXT
PARAMETERS (’STORAGE CTXSYS.TBLSP_TEXT_INDEX’);