Bueno he tenido el problema de ajustar consultas cuando usan el operador like con la mascara '%%' , esto sin duda hace un full scan a la tabla en cuestion.
Afortunadamente oracle nos soluciona este problemas con unos tipos especiales de indices usando oracle text.
Estos tipos especiales de indices son:
# CONTEXT Indexes : se usa para buscar en documentos pdf , html etc.
# CTXCAT Indexes : se usa para buscar texto corto nomas de 30 caracteres.
# CTXRULE Indexes : para construir aplicaciones de clasificación de documento
primero vamos a crear el indice sobre la columa col1
CREATE INDEX myindice ON tabla(col1) INDEXTYPE IS CTXSYS.CONTEXT;
y en vez de hacer la query
select col1 from tabla where col1 like '%AA%'
hacemos esto
SELECT col1
FROM tabla
WHERE CONTAINS(col1, 'AA', 1) > 0
y usara el indice creado anteriormente.
No hay comentarios:
Publicar un comentario