SQL Sortierung: Server vs. Client

7

Wenn es darum geht, Daten zu sortieren, haben wir meistens zwei Möglichkeiten:

  1. Sortieren Sie auf dem SQL-Server - verwenden Sie die ORDER BY-Klausel
  2. Nach Client eins sortieren wir die Daten aus der Datenbank

Wann würdest du eins über dem anderen benutzen und warum?

    
Moon 27.10.2010, 02:53
quelle

3 Antworten

23

Sortiere immer wo möglich im SQL Server.

Das SQL abstrahiert die Schritte zum Abfragen der Datenbank, Sortierung usw. Verwenden Sie so viel Abstraktion wie möglich - warum würden Sie eine Reihe von Zeilen auswählen und dann einen Sortieralgorithmus schreiben, wenn Sie dies in SQL mit tun können ORDER BY .

Siehe auch Bill Karwins Antwort .

    
alex 27.10.2010, 02:55
quelle
22

Ich würde die Sortierung auf dem Server verwenden, wenn das Dataset groß ist, und ich weiß, dass in der Datenbank ein Index vorhanden ist, der bei der Sortierung hilft. Wenn es keinen Index gibt, würde ich einen erstellen.

Ich würde die Sortierung auf dem Client nur verwenden, wenn der Datensatz klein genug ist, um bequem in den Anwendungsspeicher zu passen, und das Anwendungssystem eine effiziente Sortierfunktion hat und es keinen Index in der Datenbank gibt. Aber wenn der Datensatz so klein ist, sind die Kosten für die Sortierung im Server selbst ohne Index wahrscheinlich leicht zu ertragen.

    
Bill Karwin 27.10.2010 02:57
quelle
6

Im Allgemeinen möchten Sie in der Datenbank sortieren, es ist einfacher, erfordert weniger Code und ist effizienter.

Es gibt jedoch einige Randbedingungen, bei denen eine Client-basierte Sortierung sinnvoll ist.

Ein Datensatz, mehrere Sortierungen, ein Datensatz im Speicher

Nehmen wir an, Sie haben eine JavaScript-GUI, die eine Tabelle mit 500 Zeilen anzeigt. Wenn Sie Ihren Benutzern die Flexibilität geben möchten, nach der von Ihnen gewünschten Spalte zu sortieren, ist es sinnvoll, in JavaScript zu sortieren eine Reise zum Server.

Der Hauptvorteil bei der Verwendung der Client-seitigen Sortierung besteht darin, den Netzwerkverkehr und die Datenbanknutzung zu verringern (wenn mehrere Sortierungen angeboten werden). Sie müssen sehr vorsichtig mit Ihrer Sortierleistung und Speicherbeschränkungen sein. Große Datenmengen, Client-Seite, werden oft virtualisiert, so dass nicht alle Daten tatsächlich beim Client ankommen.

    
Sam Saffron 27.10.2010 03:22
quelle

Tags und Links