Maison > base de données > tutoriel mysql > le corps du texte

Expliquer la méthode de traitement des requêtes de pagination de sqlserver

巴扎黑
Libérer: 2017-08-11 15:01:46
original
1823 Les gens l'ont consulté

Voici plusieurs façons d'écrire des scripts de requête que j'ai trouvés en ligne et que je partage par la présente sur la plateforme Script House pour votre référence

sqlserver2008 ne prend pas en charge la limite de mots clés, donc ses instructions de requête SQL de pagination ne le seront pas pouvoir utiliser la méthode MySQL Heureusement, sqlserver2008 fournit des mots-clés tels que top et rownumber, afin que la pagination puisse être réalisée via ces mots-clés.

Voici les méthodes d'écriture de plusieurs scripts de requête que j'ai trouvés sur Internet :

Plusieurs instructions de requête SQL de pagination efficaces sqlserver2008

meilleure solution :

code SQL :


select top 10 * from table1
where id not in(select top 开始的位置 id from table1)
Copier après la connexion

max :

code SQL :


select top 10 * from table1
where id>(select max(id)
from (select top 开始位置 id from table1 order by id)tt)
Copier après la connexion

ligne :

Code SQL :


select *
from (
select row_number()over(order by tempcolumn)temprownumber,*
from (select top 开始位置+10 tempcolumn=0,* from table1)t
)tt
where temprownumber>开始位置
Copier après la connexion

3 méthodes de pagination, à savoir plan max, plan haut, plan rangée

Efficacité :

1ère : rangée

2ème : max

N°3 : top

Inconvénients :

max : L'utilisateur doit écrire du SQL complexe et ne prend pas en charge le tri de colonnes non unique

haut : les utilisateurs doivent écrire du SQL complexe, les clés primaires composites ne sont pas prises en charge

ligne : sqlserver2000 n'est pas pris en charge

Données de test :

Il y a 3,2 millions de données au total, 10 données sont affichées sur chaque page, et 20 000 pages, 150 000 pages et 320 000 pages ont été testées respectivement.

Numéro de page, plan supérieur, plan max, plan de rangée

20 000, 60 ms, 46 ms, 33 ms
150 000, 453 ms, 343 ms, 310 ms
320 000, 953 ms, 720 ms, 6 ms

est une solution de pagination qui fusionne les instructions SQL via un programme

Les instructions SQL mentionnées par les utilisateurs ne nécessitent pas l'écriture d'une logique SQL complexe

Aucun utilisateur ne fournit SQL comme suit

🎜>
code SQL


select * from table1
Copier après la connexion

À partir du 5ème élément, interrogez 5 éléments, et le sql devient


après traitement code SQL


select *
from (
select row_number()over(order by tempcolumn)temprownumber,*
from (select top 10 tempcolumn=0,* from table1)t
)tt
where temprownumber>5
Copier après la connexion

Qu'est-ce que cela signifie ? Décomposez-le

Tout d'abord, modifiez légèrement l'instruction SQL saisie par l'utilisateur

Ajoutez la première position de départ + le nombre d'éléments après la sélection pour devenir

puis ajoutez une colonne de tempcolum, cela devient comme ceci


le code SQL


select top 20 tempcolumn=0,* from clazz
Copier après la connexion

est imbriqué sur un niveau, afin que le numéro de ligne puisse être interrogé

La colonne à l'instant

est utilisée pour commander par ici (je ne sais pas pourquoi la fonction row_number de sqlserver doit trier par)


code SQL


select row_number()over(order by tempcolumn)temprownumber,*
from (修改过的查询)t
Copier après la connexion

Mettez un autre calque et filtrez les lignes dont les numéros de ligne sont inférieurs à la position de départ


code SQL


select * from (第二层)tt
where temprownumber>10
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!