 |
Publicité
|
En effet, lorsque le nombre d'enregistrements retourné est important, un programme (ASP, VB…) mettra plus de temps à extraire les enregistrements que ne le ferait le serveur SQL.
Par exemple, si nous vous extraire les enregistrements 3001 à 3020 :
- d'une requête de manière classique :
1- Creation d'une requête du type : select top 3020 * from test order by idtest
2- se déplacer à l'enregistrement 3001 puis affichage des enregistrements
l'inconvénient majeur de ce système est le manque de rapidité dû à la taille du recordset.
- d'une requête simulant la fonction LIMIT :
principe :
extraction des 3020 premiers enregistrements dans l'ordre croisant puis extraction des 20 premiers enregistrements dans l'ordre décroissant et enfin remettre ces 20 enregistrements dans l'ordre initial.

ce qui donne une requête du type : select * from (select top 20 * from (select top 3020 * from test order by idtest) as t1 order by idtest DESC) as t2 order by idtest
|