sql >> Databáze >  >> RDS >> Oracle

Jak indexovat sloupec Y/N v Oracle

Jaký je poměr Y/N ?Jsou záznamy aktualizovány tak, aby šly od Y/N a/nebo N/Y? Pokud ano, děje se to pravidelně (např. na skladě/není na skladě/na skladě/vyprodáno- ze skladu) nebo jako jednorázové (nezpracované/zpracované)?

Pokud jsou položky promíchány a vy máte rovný poměr, index pravděpodobně nepomůže.

Můžete použít rozdělení (pokud máte licenci) k rozdělení Y od N. Materializované pohledy nebo vytvoření tabulky jako UNION ALL na dvě tabulky (možná pomocí spouštěčů MÍSTO spouštěčů) by také mohlo oddělit Y od N. To vše bude potrestáno zpracováním aktualizace.

Index bitmapy může být vhodný, pokud sloupec nevykazuje příliš velkou aktivitu aktualizace.

Můžete mít index založený na funkci na CASE WHEN flag ='Y' a poté 'Y' end. To by vyloučilo hodnoty N z indexu, čímž by byl mnohem menší.



  1. SQL dotaz pro získání odlišných hodnot všech hodnot sloupců v tabulce

  2. Python:použít mysqldb k importu tabulky MySQL jako slovníku?

  3. ERROR 2006 (HY000):Server MySQL odešel

  4. Problém ztráty aktualizace v souběžných transakcích