Когда вы используете в запросе SQL Server TOP
, останавливается ли механизм SQL Server при поиске строк, когда его достаточно для удовлетворения TOP X
, которое необходимо вернуть?
Рассмотрим следующие запросы (предположим, что поле some_text_field уникально и не настроено для полнотекстовой индексации):
SELECT
pk_id
FROM
some_table
WHERE
some_text_field = 'some_value';
и
SELECT TOP 1
pk_id
FROM
some_table
WHERE
some_text_field = 'some_value';
Первый запрос должен будет выполнить поиск по всей таблице и вернуть все найденные результаты. Однако, как мы его настроили, этот запрос будет действительно возвращать одно значение. Таким образом, использование TOP 1
не позволит серверу SQL сканировать оставшуюся часть таблицы после того, как он найдет совпадение?