Heim > Datenbank > MySQL-Tutorial > Wie kann ich große Datensätze in SQL Server effizient paginieren und gleichzeitig die Leistung beibehalten?

Wie kann ich große Datensätze in SQL Server effizient paginieren und gleichzeitig die Leistung beibehalten?

Patricia Arquette
Freigeben: 2025-01-22 00:52:12
Original
961 Leute haben es durchsucht

How Can I Efficiently Paginate Large Datasets in SQL Server While Maintaining Performance?

Optimierung der Paginierung in SQL Server für große Datensätze

Um Benutzern große Datensätze effizient präsentieren zu können, ist eine Paginierung erforderlich, bei der nur ein Teil der Ergebnisse pro Seite angezeigt wird. Allerdings ist die Implementierung der Paginierung ohne Beeinträchtigung der Leistung von entscheidender Bedeutung, insbesondere wenn im Voraus eine Gesamtergebniszählung erforderlich ist.

Ältere SQL Server-Versionen (2000-2008): Zeilennummerierung

Vor SQL Server 2012 war die Zeilennummerierung die Standard-Paginierungstechnik. Dazu gehörte die Zuweisung einer Zeilennummer mit ROW_NUMBER() und die Filterung nach Seitengröße und -nummer. Dieser Ansatz war zwar funktionsfähig, erwies sich jedoch bei umfangreichen Datensätzen als ineffizient.

SQL Server 2012 und höher: OFFSET und FETCH

SQL Server 2012 führte die übergeordneten Klauseln OFFSET und FETCH ein. Diese überspringen direkt eine angegebene Anzahl von Zeilen und rufen nur die erforderliche Teilmenge ab. Dies steigert die Leistung bei großen Datensätzen erheblich, da der Mehraufwand für die Zeilennummerierung entfällt.

Illustrative Abfrage

Die folgende Abfrage veranschaulicht das Abrufen der ersten 10 Zeilen und der Gesamtzeilenanzahl mit OFFSET und FETCH in SQL Server 2012 und höher:

<code class="language-sql">DECLARE @RowsPerPage INT = 10;

WITH TotalResults AS (
  SELECT COUNT(*) OVER() AS TotalRows
  FROM TableName
)
SELECT *
FROM TableName
ORDER BY id
OFFSET 0 ROWS
FETCH NEXT @RowsPerPage ROWS ONLY;

SELECT TotalRows
FROM TotalResults;</code>
Nach dem Login kopieren

Wichtige Hinweise:

  • Eine ORDER BY-Klausel ist obligatorisch, wenn OFFSET und FETCH verwendet werden.
  • OFFSET muss FETCH begleiten; Sie können nicht mit TOP.
  • verwendet werden
  • Der Einsatz von OFFSET und FETCH steigert die Leistung erheblich, insbesondere bei umfangreichen Datensätzen.

Das obige ist der detaillierte Inhalt vonWie kann ich große Datensätze in SQL Server effizient paginieren und gleichzeitig die Leistung beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage