Jest jeszcze jeden sposób indeksowania, który pozwala nam na bardzo wygodne korzystanie z indeksów i wyszukiwanie wartości nullowych. Mianowicie indeks jest prostym indeksem składającym się z dwóch kolumn – tej po której chcemy wyszukiwać i wartości stałej. Np: create index kolumna_IDX on tabela (kolumna, TO_DATE(‘4000-01-01’, ‘yyyy-mm-dd’)); i wtedy możemy pisać zapytania: select * from tabela where kolumna is null i indeks zadziała! ——————————————————————————————————– Zrobiłam też porównanie dla tabeli, gdzie stosunek ilości nullowych wierszy do wszystkich w tabeli wynosi: 1.002/131.002 I założyłam indeks create index AA2_IDX on AAAAA2_TEST (NVL(MODIFY_DATE,TO_DATE(‘4000-01-01’, ‘yyyy-mm-dd’))) Koszt zapytania: select COUNT(*) from aaaaa2_test WHERE NVL(modify_DATE,TO_DATE(‘4000-01-01’, ‘syyyy-mm-dd’)) = TO_DATE(‘4000-01-01’, ‘syyyy-mm-dd’) wyniósł
38 zaś dla indeksu: create index AA_IDX on AAAAA2_TEST (FROM_DATE, TO_DATE(‘4000-01-01’, ‘yyyy-mm-dd’)) i zapytania: select COUNT(*) from aaaaa2_test WHERE FROM_DATE IS NULL wyniósł 28. Dla większej ilości nullowych rekordów tzn. 11002/131.002 stosunek kosztów wyniósł 43/28, a więc znów zdecydowanie na korzyść indeksu dwukolumnowego.
Hello World