Indices Parciales

Autor: Extraido de una respuesta de Paul M. Aoki a una pregunta formulada en la lista de correo electrónico, el 11-08-1998.

Un índice parcial es un índice construido sobre un subconjunto de los registros de una tabla; siendo el subconjunto definido por un predicado. Postgres soporta índices parciales con expresiones arbitrarios. Creo que db2 para AS/400 de IBM soporta índices parciales que utilicen expresiones de una sola clásula.

El motivo principal para la existencia de índices parciales es este: si todas las consultas que a usted le resulten útiles caen dentro de un cierto rango ¿por qué construir un índice sobre toda la tabla y sufrir el costo de espacio y tiempo asociado a ello? (Existen otras razones; vea Stonebraker, M, 1989b para más detalles).

La maquinaria para construir, actualizar y consultar los índices parciales no es demasiado mala. La parte complicada es la selección del índice (¿Qué índice debo construir?) y la optimización (¿Qué índice debo utilizar?); es decir, la partes que involucran decidir qué expresión brinda una relación (carga de trabajo/consulta) que resulte útil.

Vea Stonebraker, M, 1989b, Olson, 1993, y para mayor informacón.