Tengo una tabla que tiene entradas activas inactivas, activo = 1 para activo y activo = 0 para inactivo.Oracle: indización de un subconjunto de filas de una tabla
Tengo una variedad de índices en esta tabla, pero solo necesito los índices mantenidos para entradas activas, ya que la aplicación solo consulta con datos activos. Los datos inactivos deben mantenerse porque pueden volver a activarse, pero esto generalmente solo se realiza con actualizaciones masivas, que de todos modos no usarían un índice.
Me doy cuenta de que indexar las entradas inactivas (hay cada vez más entradas activas) ocupa bastante espacio.
¿Hay alguna manera en Oracle (10g) para hacer algo como esto:
create index an_idx on tab (active, col1, col2, ... , coln) where active = 1
?
intento previo:
me trató de usar una función de índice basado para establecer la primera columna a la nula cuando active = 0
así:
create index an_idx on tab (decode(active, 1, 1, null), col1, col2, ... , coln)
Pero Oracle todavía parece índice de las columnas inactivos en este caso.
Si el ahorro de espacio es su objetivo, la opción 2 tendría sentido OMI. –