Я запитую це, тому що я в основному працював з Oracle, але минулий рік я подвоювався з PostGIS і SQLServer 2008. Більшість просторових функцій Oracle не працюватимуть без просторового індексу, що повертає помилку ORA-13226:
13226, 00000, "інтерфейс не підтримується без просторового індексу" // * Причина: Таблиця геометрії не має просторового індексу. // * Дія: Перевірте, що таблиця геометрії, на яку посилається просторовий оператор, має на ній просторовий індекс.
Для мене це має сенс. Ви запускаєте просторовий запит = у вас повинен бути просторовий індекс. Але наскільки я розумію, ні PostGIS, ні SQL Serve цього не вимагають. PostGIS навіть, здається, має функції (_ *, наприклад, _STContains), які ЕКСПЛІКАТНО не використовуватимуть просторовий індекс.
Тож питання: чи є випадки, коли НЕ слід використовувати просторовий індекс ?. Не обов’язково, чи є підхід «візьміть або залиште», тобто це не матиме жодних змін, але де НЕ, використовуючи просторовий індекс, покращить ефективність? Для мене останнє речення є суперечливістю термінів, але в іншому випадку, чому PostGIS надаватиме ці функції?