Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So indizieren Sie die Y/N-Spalte in Oracle

Was ist das J/N-Verhältnis? Werden Datensätze aktualisiert, sodass sie von J/N und/oder N/J gehen? Wenn ja, geschieht dies regelmäßig (z. B. auf Lager/nicht auf Lager/auf Lager/nicht Lagerware) oder als Einzelstück (unverarbeitet/verarbeitet) ?

Wenn die Einträge gemischt sind und Sie ein ausgeglichenes Verhältnis haben, ist ein Index wahrscheinlich nicht hilfreich.

Sie könnten Partitionierung verwenden (wenn Sie die Lizenz haben), um Y von N zu trennen. Materialisierte Ansichten oder das Erstellen einer UNION ALL-Ansicht über zwei Tabellen (möglicherweise mit INSTEAD OF-Triggern) könnten Y auch von N trennen. All dies führt zu einer Strafe für die Aktualisierungsverarbeitung.

Ein Bitmap-Index kann angemessen sein, wenn die Spalte nicht viel Aktualisierungsaktivität erhält.

Sie könnten einen funktionsbasierten Index auf CASE WHEN flag ='Y' dann 'Y' end haben. Das würde N-Werte aus dem Index ausschließen und ihn viel kleiner machen.