Im Folgenden sind mehrere Möglichkeiten zum Schreiben von Abfrageskripten aufgeführt, die ich online gefunden habe und die ich hiermit als Referenz auf der Script House-Plattform zur Verfügung stelle.
sqlserver2008 unterstützt die Schlüsselwortbeschränkung nicht, daher wird dies bei seinen Paging-SQL-Abfrageanweisungen nicht der Fall sein In der Lage sein, die MySQL-Methode zu verwenden, bietet sqlserver2008 Schlüsselwörter wie „top“ und „rownumber“, sodass das Paging über diese Schlüsselwörter erreicht werden kann.
Im Folgenden sind die Schreibmethoden mehrerer Abfrageskripte aufgeführt, die ich im Internet gefunden habe:
Mehrere effiziente Paging-SQL-Abfrageanweisungen von sqlserver2008
Top-Lösung:
SQL-Code:
select top 10 * from table1 where id not in(select top 开始的位置 id from table1)
max:
SQL-Code:
select top 10 * from table1 where id>(select max(id) from (select top 开始位置 id from table1 order by id)tt)
Zeile:
SQL-Code:
select * from ( select row_number()over(order by tempcolumn)temprownumber,* from (select top 开始位置+10 tempcolumn=0,* from table1)t )tt where temprownumber>开始位置
3 Paging-Methoden, nämlich Max-Plan, Top-Plan, Zeilenplan
Effizienz:
1.: Reihe
2.: max.
Nr. 3 : top
Nachteile:
max: Der Benutzer muss komplexes SQL schreiben und unterstützt keine nicht eindeutige Spaltensortierung
oben: Benutzer müssen komplexes SQL schreiben, zusammengesetzte Primärschlüssel werden nicht unterstützt
Zeile: sqlserver2000 wird nicht unterstützt
Testdaten:
Es gibt insgesamt 3,2 Millionen Daten, auf jeder Seite werden 10 Daten angezeigt und es wurden jeweils 20.000 Seiten, 150.000 Seiten und 320.000 Seiten getestet.
Seitenzahl, oberer Plan, maximaler Plan, Zeilenplan
20.000, 60 ms, 46 ms, 33 ms
150.000, 453 ms, 343 ms, 310 ms
320.000, 953 ms, 720 ms, 6 86 ms
ist eine Paging-Lösung, die SQL-Anweisungen über ein Programm zusammenfügt
Die von Benutzern genannten SQL-Anweisungen erfordern kein Schreiben komplexer SQL-Logik
Kein Benutzer stellt SQL wie folgt bereit
SQL-Code
select * from table1
Beginnen Sie mit Punkt 5, fragen Sie 5 Elemente ab und nach der Verarbeitung wird der SQL zu
SQL-Code
select * from ( select row_number()over(order by tempcolumn)temprownumber,* from (select top 10 tempcolumn=0,* from table1)t )tt where temprownumber>5
Was bedeutet das? Unterteilen Sie es
Ändern Sie zunächst leicht die vom Benutzer eingegebene SQL-Anweisung
Fügen Sie die oberste Startposition + Anzahl der Elemente nach der Auswahl hinzu, um
zu werden, und fügen Sie dann eine Spalte hinzu von tempcolum wird es so:
SQL-Code
select top 20 tempcolumn=0,* from clazz
ist auf einer Ebene verschachtelt, sodass die Zeilennummer abgefragt werden kann
Die Spalte gerade ist
wird hier für die Reihenfolge verwendet (ich weiß nicht, warum die Funktion „row_number“ von sqlserver sortieren muss)
SQL-Code
select row_number()over(order by tempcolumn)temprownumber,* from (修改过的查询)t
Fügen Sie eine weitere Ebene hinzu und filtern Sie Zeilen heraus, deren Zeilennummern unter der Startposition liegen
SQL-Code
select * from (第二层)tt where temprownumber>10
Das obige ist der detaillierte Inhalt vonErläutern Sie die Verarbeitungsmethode für Paging-Abfragen von SQL Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!