Zwischen Code (C #, Java) und Datenbank (SQL), wo sollten wir sortieren oder filtern?
Frage
Zwischen Code (C #, Java) und Datenbank (SQL), wo sollten wir sortieren oder filtern?
Im Code bedeutet es eine einzelne gespeicherte Prozedur mit allen Daten aus der Datenbank abgerufen wird und dann meine Daten filtern (im Geschäft oder Datenschicht).
In der Datenbank bedeutet es eine gespeicherte Prozedur mit. In diesem Fall wird der Code (Datenschicht) gespeicherte Prozedur meine Filtereinstellungen senden, die Pflege eine aufgehellte Daten zurücknimmt.
Was ist besser, und unter welchen Umständen?
Lösung
Es hängt wirklich von der Art der Nutzung. Beispiel:
- Datengröße
- Fetch Frequenz
- Antwortzeit Benutzer
- Etc etc
Im Allgemeinen lassen die DB-Server so viele Daten tun bezogene Operation, wie Sie können, sie sind dafür optimiert. Aber es ist keine definitive Regel. In vielen Fällen Charge von Daten in einem Rutsch abgerufen, preseented und sortieren / an dem UI-Schicht / anwendungsseitigen gefiltert. Z.B. Für kleinen Sortiertisch auf Web-Seiten für schnellere Reaktionszeit.
Andere Tipps
In der Regel sollten Sie Ihre Anfrage in Ihrem Code erstellen und der DB-Server lassen die Arbeit zu erledigen. Für spezielle Fall können Sie auch filtern, die in Ihnen Client-Klasse entscheiden.