В запросе вы разместили:
select * from <table_name>;
Нет такой вещи, как сотые-200-е строки, потому что вы не указываете ORDER BY. Заказ не гарантируется, если вы не включите ORDER BY по целому ряду интересных причин, но здесь дело не в этом.
Итак, чтобы проиллюстрировать вашу точку зрения, давайте использовать таблицу - я собираюсь использовать таблицу Users из дампа данных переполнения стека и выполнить этот запрос:
SELECT * FROM dbo.Users ORDER BY DisplayName;
По умолчанию в поле DisplayName нет индекса, поэтому SQL Server должен просканировать всю таблицу, а затем отсортировать ее по DisplayName. Вот план выполнения :
Это не красиво - это много работы с оценочной стоимостью поддерева около 30 тыс. (Вы можете увидеть это, наведя указатель мыши на оператор выбора в PasteThePlan.) Так что же произойдет, если нам нужны только строки 100-200? Мы можем использовать этот синтаксис в SQL Server 2012+:
SELECT * FROM dbo.Users ORDER BY DisplayName OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY;
План выполнения этого тоже довольно уродлив:
SQL Server все еще сканирует всю таблицу, чтобы создать отсортированный список, чтобы получить 100–200 строк, а стоимость по-прежнему составляет около 30 тыс. Хуже того, весь этот список будет перестраиваться при каждом выполнении вашего запроса (потому что, в конце концов, кто-то мог изменить свое DisplayName.)
Чтобы сделать это быстрее, мы можем создать некластеризованный индекс для DisplayName, который является копией нашей таблицы, отсортированной по этому конкретному полю:
CREATE INDEX IX_DisplayName ON dbo.Users(DisplayName);
С этим индексом план выполнения нашего запроса теперь выполняет поиск по индексу:
Запрос завершается мгновенно и имеет приблизительную стоимость поддерева всего 0,66 (в отличие от 30k).
Таким образом, если вы организуете данные способом, который поддерживает запросы, которые вы часто выполняете, то да, SQL Server может использовать ярлыки для ускорения выполнения ваших запросов. Если, с другой стороны, все, что у вас есть, это кучи или кластерные индексы, вы облажались.