Ich habe eine Datenbankabfrage, die zu einer großen Ergebnismenge führen kann. Der Client, der die Daten anzeigt, empfängt die Daten über das Netzwerk. Daher bestand die Idee darin, die Menge der übertragenen Daten zu minimieren, indem nur die ersten 50 Ergebnisse aus der Datenbank abgerufen und an den Client gesendet wurden. Dann biete ich die Möglichkeit, zur zweiten Seite zu springen, um die nächsten 50 Ergebnisse usw. abzurufen (etwas Ähnliches, was z. B. Google anbietet).
Die Frage ist, wie Paging effektiv implementiert werden kann. Ich möchte sicherstellen, dass mssql so oft wie möglich den Cache verwendet und dass dieser nicht jedes Mal erneut ausgeführt wird, wenn ich das Paging ändere.
Es gibt mehr Clients, die gleichzeitig die Datenbank abfragen. Verwendete SQL-Engine: MS SQL 2005
Meine Ideen waren:
- Verwenden Sie vorbereitete SQL-Anweisungen, um die gemeinsame Nutzung des Ausführungsplans sicherzustellen
- Verwenden Sie die Variable ROW_COUNT, um nur die erforderlichen Zeilen abzurufen
Aber ist es wirklich der effektivste Weg? Oder denken Sie, dass es besser wäre, die gesamte Ergebnismenge abzurufen und Paging in den Code zu implementieren, der die Daten an den Client sendet?
Vielen Dank für Ihre Tipps!
Grüße, Tomas