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