Подсказка о типе сортировки
Функция
Управление сортировкой (по индексу или по данным).
Спецификация
::=
Синтаксические правила
-
Подсказка располагается в конце SQL-оператора.
-
Конструкция
SORT DATA
принудительно отключает сортировку по индексам (даже если индексы существуют).select i from big_test where i between 1000000 and 1010000 order by i /* +SORT DATA */
-
Конструкция
SORT INDEX
включает сортировку по индексам (даже если требуется отсортировать всего одну-две записи). Соответствующие индексы должны существовать.select i from big_test where i between 1000000 and 1000001 order by i /* +SORT INDEX */;
Общие правила
-
Если подсказка о способе сортировки не задана, СУБД ЛИНТЕР самостоятельно определяет стратегию сортировки. В некоторых случаях выбранный способ может оказаться не оптимальным. Исправить ситуацию можно с помощью данной подсказки.
Пример
Пусть таблица содержит 1 млн. записей.
Если SQL-запрос сформулирован таким образом, что обработке подлежит физически непрерывный набор данных (например, данные, хранящиеся последовательно в первой и второй страницах файла данных таблицы, т.е. внесенные в БД за конкретный месяц), то лучше использовать сортировку по данным.
Если же искомые записи разбросаны случайным образом среди 1 млн. записей таблицы, то оптимальной будет сортировка по индексу.