Доступные версии документации

Подсказка о типе сортировки
Функция

Управление сортировкой (по индексу или по данным).

Спецификация
   
<подсказка о типе сортировки>::=
/* +SORT {DATA |INDEX} */
Синтаксические правила
  1. Подсказка располагается в конце SQL-оператора.

  2. Конструкция SORT DATA принудительно отключает сортировку по индексам (даже если индексы существуют).

    select i from big_test where i between 1000000 and 1010000
    order by i /* +SORT DATA */
  3. Конструкция SORT INDEX включает сортировку по индексам (даже если требуется отсортировать всего одну-две записи). Соответствующие индексы должны существовать.

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

Пример

Пусть таблица содержит 1 млн. записей.

Если SQL-запрос сформулирован таким образом, что обработке подлежит физически непрерывный набор данных (например, данные, хранящиеся последовательно в первой и второй страницах файла данных таблицы, т.е. внесенные в БД за конкретный месяц), то лучше использовать сортировку по данным.

Если же искомые записи разбросаны случайным образом среди 1 млн. записей таблицы, то оптимальной будет сортировка по индексу.

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter