sql >> Base de Datos >  >> RDS >> Oracle

Cómo indexar la columna Y/N en Oracle

¿Cuál es la relación Y/N? ¿Se actualizan los registros para que vayan de Y/N y/o N/Y? Si es así, ¿esto sucede regularmente (p. de stock) o como único (sin procesar/procesado)?

Si las entradas están mezcladas y tiene una proporción uniforme, es poco probable que un índice ayude.

Puede usar la partición (si tiene la licencia) para dividir Y de N. Las vistas materializadas o hacer que la tabla sea una vista UNION ALL en dos tablas (tal vez con disparadores INSTEAD OF) también podría dividir Y de N. Todos estos incurrirán en una penalización para actualizar el procesamiento.

Un índice de mapa de bits puede ser apropiado si la columna no recibe mucha actividad de actualización.

Podría tener un índice basado en funciones en CASE WHEN flag ='Y' y luego en 'Y' end. Eso excluiría los valores N del índice, haciéndolo mucho más pequeño.