Hallo,

das Verhalten hängt von vielen Faktoren ab, Geschwindigkeit, Anbindung der Datenbank, Umfang der Ergebnismenge etc. Im Allgemeinen sollte man das Resultset möglichst klein halten, da der Datentransport über das Netzwerk eher ein Bremse darstellt als die Abfrage der Daten selbst. Die Datenbank selbst kann besser Abfragen optimieren und Daten cachen als Du das mit erträglichem Aufwand lokal hinkriegst. Zudem ist das Holen und Speichern "auf Verdacht" ein Antipattern, da Du so schnell unnötg Konflikte erzeugen kannst (Lokale Daten vs. zwischenzeitlich geänderte Daten)

Daher: Sieh Dir die Anfragen an, die Du über ActiveRecord auf der Datenbank erzeugst (AR-Logging einschalten!) und versuche die Ergebnismenge möglicht klein zu halten und laß die Datenbank die Arbeit machen für die sie optimiert ist (Filtern, Suchen, Joins). Wenn das Ganze zu langsam ist, dann beschäftige Dich mit den Themen Fremdschlüssel und Indizes. Prüfe ob die von AR erzeugten Abfragen entsprechend optimal sind ...

Es gibt wirklich selten Fälle bei denen eine richtig eingesetzte Datenbank ein echter Flaschenhals ist.

Viele Grüße & Erfolg,
Peter


Am 02.09.2008 um 21:28 schrieb Holger Hänisch:

Hallo!

Also ich hab mir gedacht: biste klug und baust deine Seitenlangen
Datenbankabfragen(SQL QUERRYS) um. Anstatt zigmal das selbe aus der
Datenbank abzufragen habe ich mir dann alle Datensätze auf einmal in ein Array geholt z. B. : ( @project = Project.find(:all) ) um dann im Array
@project meine Suchabfragen zu machen.

Nun habe ich aber nicht den Eindruck, dass das schneller geht. Ganz im
Gegenteil.

Wie sind denn da eure Erfahrungen?

Gruß Ortwin
--
Posted via http://www.ruby-forum.com/.
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an