Oracle
 sql >> Database >  >> RDS >> Oracle

Come indicizzare la colonna Y/N in Oracle

Qual è il rapporto Y/N? I record vengono aggiornati in modo che passino da Y/N e/o N/Y? In tal caso, ciò accade regolarmente (ad es. in stock/out-of-stock/in-stock/out- of-stock) o come una tantum (non elaborato/elaborato)?

Se le voci sono miste e hai un rapporto pari, è improbabile che un indice aiuti.

Potresti usare il partizionamento (se hai la licenza) per dividere Y da N. Le viste materializzate o rendere la tabella una vista UNION ALL su due tabelle (magari con INVECE DI trigger) potrebbero dividere anche Y da N. Tutti questi incorreranno in una penale per l'aggiornamento dell'elaborazione.

Un indice bitmap potrebbe essere appropriato se la colonna non riceve molte attività di aggiornamento.

Potresti avere un indice basato sulla funzione su CASE WHEN flag ='Y' quindi 'Y' end. Ciò escluderebbe N valori dall'indice rendendolo molto più piccolo.