Indeksy na kolumnach z wartościami nullowymi cz. 2

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.

One thought on “Indeksy na kolumnach z wartościami nullowymi cz. 2

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.