Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment indexer la colonne Y/N dans Oracle

Quel est le rapport O/N ? Les enregistrements sont-ils mis à jour pour passer de O/N et/ou N/A ? Si oui, cela se produit-il régulièrement (par exemple, en stock/en rupture de stock/en stock/en rupture de stock ? en stock) ou en pièce unique (non transformé/transformé) ?

Si les entrées sont mélangées et que vous avez un ratio égal, il est peu probable qu'un index vous aide.

Vous pouvez utiliser le partitionnement (si vous avez la licence) pour séparer Y de N. Les vues matérialisées ou faire de la table une vue UNION ALL sur deux tables (peut-être avec des déclencheurs INSTEAD OF) peuvent également séparer Y de N. Tout cela entraînera une pénalité pour mettre à jour le traitement.

Un index bitmap peut être approprié si la colonne ne reçoit pas beaucoup d'activité de mise à jour.

Vous pourriez avoir un index basé sur une fonction sur CASE WHEN flag ='Y' then 'Y' end. Cela exclurait les valeurs N de l'indice, ce qui le rendrait beaucoup plus petit.