Pytam o to, ponieważ głównie pracowałem z Oracle, ale przez ostatni rok podwoiłem się z PostGIS i SQLServer 2008. Większość funkcji przestrzennych w Oracle nie będzie działać bez indeksu przestrzennego zwracającego błąd ORA-13226:
13226, 00000, „interfejs nieobsługiwany bez indeksu przestrzennego” // * Przyczyna: Tabela geometrii nie ma indeksu przestrzennego. // * Działanie: Sprawdź, czy tabela geometrii, do której odwołuje się operator przestrzenny, ma indeks przestrzenny.
Dla mnie ma to sens. Wykonujesz zapytanie przestrzenne = musisz mieć indeks przestrzenny. Ale o ile rozumiem, ani PostGIS, ani SQL Serve tego nie wymagają. PostGIS wydaje się nawet mieć funkcje (_ * np. _STContains), które WYRAŹNIE nie będą używać indeksu przestrzennego.
Pytanie brzmi: czy są jakieś przypadki, w których NIE powinieneś używać indeksu przestrzennego ?. Niekoniecznie, czy jest to podejście „weź lub zostaw”, tzn. Nie zrobi to żadnej różnicy, ale gdzie NIE użycie indeksu przestrzennego poprawi wydajność? Dla mnie ostatnie zdanie jest sprzecznością, ale poza tym, dlaczego PostGIS miałby zapewniać te funkcje?