Dans la requête que vous avez publiée:
select * from <table_name>;
Les 100e à 200e lignes n'existent pas, car vous ne spécifiez pas de ORDER BY. L'ordre n'est pas garanti, sauf si vous incluez la commande par pour de nombreuses raisons intéressantes, mais ce n'est pas vraiment le point ici.
Donc, pour illustrer votre propos, utilisons un tableau - je vais utiliser le tableau Utilisateurs du vidage de données Stack Overflow et exécuter cette requête:
SELECT * FROM dbo.Users ORDER BY DisplayName;
Par défaut, il n'y a pas d'index dans le champ DisplayName, donc SQL Server doit analyser la table entière, puis la trier par DisplayName. Voici le plan d'exécution :
Ce n'est pas joli - c'est beaucoup de travail, avec un coût de sous-arbre estimé à environ 30k. (Vous pouvez le voir en plaçant votre souris sur l'opérateur de sélection sur PasteThePlan.) Alors, que se passe-t-il si nous voulons uniquement les lignes 100-200? Nous pouvons utiliser cette syntaxe dans SQL Server 2012+:
SELECT * FROM dbo.Users ORDER BY DisplayName OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY;
Le plan d'exécution à ce sujet est également très laid:
SQL Server analyse toujours toute la table pour créer la liste triée juste pour vous donner vos lignes 100-200, et le coût est toujours d'environ 30k. Pire encore, toute cette liste sera reconstruite à chaque exécution de votre requête (car après tout, il se peut que quelqu'un ait changé de nom d'affichage).
Pour l'accélérer, nous pouvons créer un index non cluster sur DisplayName, qui est une copie de notre table, triée par ce champ spécifique:
CREATE INDEX IX_DisplayName ON dbo.Users(DisplayName);
Avec cet index, le plan d'exécution de notre requête effectue désormais une recherche d'index:
La requête se termine instantanément et a un coût estimé de sous-arbre de seulement 0,66 (contre 30k).
En résumé, si vous organisez les données de manière à prendre en charge les requêtes que vous exécutez fréquemment, alors oui, SQL Server peut prendre des raccourcis pour accélérer vos requêtes. Si, par contre, vous n'avez que des tas ou des index clusterisés, vous êtes foutu.