Inhaltsverzeichnis
Methode 1: Dreifachschleife
Idee
Code-Implementierung
Abfrageergebnisse und -zeit
Methode 2: Verwenden Sie max (Primärschlüssel)
Methode 3: Verwenden Sie das Schlüsselwort row_number
SQL-Implementierung
Vierte Methode: offset /fetch next (nur in Version 2012 und höher verfügbar)
Gespeicherte Paging-Prozedur
Heim Datenbank SQL Welche Paging-Methoden gibt es in SQL Server?

Welche Paging-Methoden gibt es in SQL Server?

Aug 06, 2021 am 09:22 AM

In diesem Artikel geht es um die Paging-Methode von SQL Server unter Verwendung der SQL Server 2012-Version. Im Folgenden wird pageIndex verwendet, um die Anzahl der Seiten darzustellen, und pageSize stellt die auf einer Seite enthaltenen Datensätze dar. Im Folgenden finden Sie spezifische Beispiele. Legen Sie die Abfrageseite 2 fest. Jede Seite enthält 10 Datensätze.

Lassen Sie uns zunächst über den Unterschied zwischen dem Paging von SQL Server und dem Paging von MySQL sprechen, indem Sie limit (pageIndex-1) und pageSize verwenden. SQL Server verfügt jedoch nicht über das Schlüsselwort limit, sondern nur über das Top Schlüsselwort ähnlich wie limit . Daher ist das Paging problematischer.

  Es gibt nur vier Arten von SQL-Server-Paging, die ich kenne: Dreifachschleife; Verwendung des Schlüsselworts „row_number“; Verwendung des Schlüsselworts „offset/fetch next“ (zusammengefasst durch das Sammeln der Methoden anderer Leute im Internet, sollte dies die einzige sein). Eines ist derzeit die Idee dieser vier Methoden, andere Methoden basieren auf dieser Verformung.

Teil der Datensätze in der Schülertabelle, die abgefragt werden sollen

Welche Paging-Methoden gibt es in SQL Server?

Methode 1: Dreifachschleife

Idee

Nehmen Sie zuerst die ersten 20 Seiten, dann die umgekehrte Reihenfolge und nehmen Sie die ersten 10 Datensätze in umgekehrter Reihenfolge, also dass Sie die für das Paging benötigten Daten abrufen können, die Reihenfolge jedoch umgekehrt ist. Sie können die Sortierung dann umkehren oder die Sortierung direkt an das Frontend übergeben.

  Es gibt eine andere Methode, die als dieser Art angesehen werden kann. Ich werde den Code hier nicht zeigen, sondern nur über die Idee sprechen, die darin besteht, zuerst die ersten 10 Datensätze abzufragen und diese dann mit „not in“ auszuschließen 10 Datensätze und dann erneut abfragen.

Code-Implementierung

-- 设置执行时间开始,用来查看性能的
set statistics time on ;
-- 分页查询(通用型)
select * 
from (select top pageSize * 
from (select top (pageIndex*pageSize) * 
from student 
order by sNo asc ) -- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。
as temp_sum_student 
order by sNo desc ) temp_order
order by sNo asc

-- 分页查询第2页,每页有10条记录
select * 
from (select top 10 * 
from (select top 20 * 
from student 
order by sNo asc ) -- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。
as temp_sum_student 
order by sNo desc ) temp_order
order by sNo asc
;
Nach dem Login kopieren

Abfrageergebnisse und -zeit

Welche Paging-Methoden gibt es in SQL Server?

Welche Paging-Methoden gibt es in SQL Server?

Methode 2: Verwenden Sie max (Primärschlüssel)

Zuerst die ersten 11 Datensatzzeilen überschreiben und dann max (id) verwenden, um den größten zu erhalten id. Fragen Sie danach die ersten 10 Elemente in dieser Tabelle erneut ab, fügen Sie jedoch die Bedingung hinzu, wobei id>max(id) ist.

Code-Implementierung

set statistics time on;
-- 分页查询(通用型)
select top pageSize * 
from student 
where sNo>=
(select max(sNo) 
from (select top ((pageIndex-1)*pageSize+1) sNo
from student 
order by  sNo asc) temp_max_ids) 
order by sNo;


-- 分页查询第2页,每页有10条记录
select top 10 * 
from student 
where sNo>=
(select max(sNo) 
from (select top 11 sNo
from student 
order by  sNo asc) temp_max_ids) 
order by sNo;
Nach dem Login kopieren

Abfrageergebnisse und -zeit

Welche Paging-Methoden gibt es in SQL Server?

Welche Paging-Methoden gibt es in SQL Server?

Methode 3: Verwenden Sie das Schlüsselwort row_number

Verwenden Sie direkt die Funktion row_number() over(order by id), um die Anzahl der Zeilen zu berechnen und auszuwählen entsprechende Zeile Geben Sie einfach die Zahl zurück, aber dieses Schlüsselwort ist nur in SQL Server 2005 und höher verfügbar.

SQL-Implementierung

set statistics time on;
-- 分页查询(通用型)
select top pageSize * 
from (select row_number() 
over(order by sno asc) as rownumber,* 
from student) temp_row
where rownumber>((pageIndex-1)*pageSize);

set statistics time on;
-- 分页查询第2页,每页有10条记录
select top 10 * 
from (select row_number() 
over(order by sno asc) as rownumber,* 
from student) temp_row
where rownumber>10;
Nach dem Login kopieren

Abfrageergebnisse und -zeit

Welche Paging-Methoden gibt es in SQL Server?

Welche Paging-Methoden gibt es in SQL Server?

Vierte Methode: offset /fetch next (nur in Version 2012 und höher verfügbar)

Code-Implementierung

set statistics time on;
-- 分页查询(通用型)
select * from student
order by sno 
offset ((@pageIndex-1)*@pageSize) rows
fetch next @pageSize rows only;

-- 分页查询第2页,每页有10条记录
select * from student
order by sno  
offset 10 rows
fetch next 10 rows only ;
Nach dem Login kopieren

offset A rows, Der erste A-Datensatz wird verworfen, nur die nächsten B-Zeilen werden abgerufen und die B-Daten werden rückwärts gelesen. Ergebnisse und Laufzeit .

Gespeicherte Paging-Prozedur

create procedure paging_procedure
(	@pageIndex int, -- 第几页
	@pageSize int  -- 每页包含的记录数
)
as
begin 
	select top (select @pageSize) *     -- 这里注意一下,不能直接把变量放在这里,要用select
	from (select row_number() over(order by sno) as rownumber,* 
			from student) temp_row 
	where rownumber>(@pageIndex-1)*@pageSize;
end

-- 到时候直接调用就可以了,执行如下的语句进行调用分页的存储过程
exec paging_procedure @pageIndex=2,@pageSize=10;
Nach dem Login kopieren

ZusammenfassungWelche Paging-Methoden gibt es in SQL Server?

  Basierend auf der Ausführungszeit der oben genannten vier Paging-Methoden können wir erkennen, dass die Leistung der zweiten, dritten und dritten Methode unter den oben genannten vier Paging-Methoden nahezu gleich ist. Die Leistung der dritten und vierten Paging-Methode ist jedoch ähnlich. Eine davon weist eine schlechte Leistung auf und wird nicht empfohlen. Außerdem testet dieser Blog eine kleine Datenmenge und hat noch keine große Datenmenge ausgelagert. Daher ist nicht klar, welche Methode eine bessere Leistung bietet, wenn eine große Datenmenge ausgelagert werden muss. Ich empfehle hier die vierte Methode. Schließlich handelt es sich bei der vierten Methode um eine neue Methode, die nach dem Upgrade des SQL-Servers eingeführt wurde, sodass sie theoretisch eine bessere Leistung und Lesbarkeit aufweisen sollte.

Welche Paging-Methoden gibt es in SQL Server?Verwandte Empfehlungen: „

MySQL-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Paging-Methoden gibt es in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die verschiedenen Arten der Datenpartitionierung in SQL (horizontal, vertikal)? Was sind die verschiedenen Arten der Datenpartitionierung in SQL (horizontal, vertikal)? Mar 13, 2025 pm 02:01 PM

In dem Artikel werden horizontale und vertikale Datenverteilung in SQL erörtert, wobei sich die Auswirkungen auf die Leistung und Skalierbarkeit konzentriert. Es vergleicht die Vorteile und Überlegungen zur Auswahl zwischen ihnen.

Wie verwende ich Aggregatfunktionen in SQL, um Daten zusammenzufassen (Summe, AVG, Count, Min, Max)? Wie verwende ich Aggregatfunktionen in SQL, um Daten zusammenzufassen (Summe, AVG, Count, Min, Max)? Mar 13, 2025 pm 01:50 PM

In dem Artikel wird erläutert, wie SQL -Aggregat -Funktionen (Summe, AVG, Count, Min, Max) verwendet werden, um Daten zusammenzufassen, deren Verwendungen und Unterschiede zu detaillieren und wie man sie in Abfragen kombiniert.

Was sind die Sicherheitsrisiken bei der Verwendung dynamischer SQL und wie kann ich sie mildern? Was sind die Sicherheitsrisiken bei der Verwendung dynamischer SQL und wie kann ich sie mildern? Mar 13, 2025 pm 01:59 PM

In dem Artikel werden Sicherheitsrisiken von dynamischem SQL erörtert, der sich auf die SQL -Injektion konzentriert, und liefert Minderungsstrategien wie die Verwendung parametrisierter Abfragen und Eingabetechnik.

Was sind die unterschiedlichen Transaktions -Isolationsniveaus in SQL (lesen Sie ungewöhnlich, lesen Sie engagiert, wiederholbares Lesen, serialisierbar)? Was sind die unterschiedlichen Transaktions -Isolationsniveaus in SQL (lesen Sie ungewöhnlich, lesen Sie engagiert, wiederholbares Lesen, serialisierbar)? Mar 13, 2025 pm 01:56 PM

In dem Artikel werden die Isolationsstufen der SQL -Transaktion erläutert: Lesen Sie ungewöhnlich, lesen engagiert, wiederholbares Lesen und serialisierbar. Es untersucht ihre Auswirkungen auf die Datenkonsistenz und Leistung

Was sind die Säureeigenschaften von Transaktionen in SQL? Was sind die Säureeigenschaften von Transaktionen in SQL? Mar 13, 2025 pm 01:54 PM

Der Artikel erörtert die Säureeigenschaften (Atomizität, Konsistenz, Isolierung, Haltbarkeit) in SQL -Transaktionen, die für die Aufrechterhaltung der Datenintegrität und -zuverlässigkeit von entscheidender Bedeutung sind.

Wie erfasse ich die Datenschutzbestimmungen (DSGVO, CCPA) mit SQL? Wie erfasse ich die Datenschutzbestimmungen (DSGVO, CCPA) mit SQL? Mar 18, 2025 am 11:22 AM

In Artikel werden die Verwendung von SQL für DSGVO- und CCPA -Einhaltung der Daten erörtert, die sich auf Datenanonymisierung, Zugriffsanforderungen und automatische Löschung veralteter Daten konzentrieren (159 Zeichen).

Wie sichere ich mich meine SQL -Datenbank vor gemeinsamen Schwachstellen wie der SQL -Injektion? Wie sichere ich mich meine SQL -Datenbank vor gemeinsamen Schwachstellen wie der SQL -Injektion? Mar 18, 2025 am 11:18 AM

In dem Artikel werden die Sicherung von SQL -Datenbanken gegen Schwachstellen wie SQL -Injektion beschrieben, wobei die vorbereiteten Aussagen, die Eingabevalidierung und regelmäßige Aktualisierungen hervorgehoben werden.

Wie implementiere ich Datenpartitionierung in SQL für Leistung und Skalierbarkeit? Wie implementiere ich Datenpartitionierung in SQL für Leistung und Skalierbarkeit? Mar 18, 2025 am 11:14 AM

In Artikel werden die Implementierung von Datenpartitionen in SQL zur besseren Leistung und Skalierbarkeit, Detailmethoden, Best Practices und Überwachungstools erläutert.

See all articles