dedlfix: Performance: Parameter oder Request

Beitrag lesen

Hi!

Auf der Seite, die die Formulardaten empfängt, muss ich nun eine Datenbankabfrage ausführen, um erneut an diese Daten zu gelangen.

Hast du ein aktuelles Problem mit schlechter Performance oder denkst du einfach nur darüber nach? Wie auch immer, du solltest vor einem Lösungsversuch konkrete Messungen des Istzustandes vornehmen und dann mit der erarbeiteten Lösung vergleichen. Nicht dass am Ende eine Verschlechterung eingetreten ist und du das nicht vergleichen kannst.

Was ist hier generell performanter, eleganter, schöner, empfehlenswerter?

Es ist vielmehr ein Nebenläufigkeitsproblem, ganz ungeachtet der Performance. A fragt einen Datensatz ab und du speicherst diese Daten irgendwo zwischen - wo ist erstmal egal. Nun kommt B und ändert etwas in dem selben Datensatz. A hat nun also nicht mehr aktuelle Daten in seinem Zwischenspeicher. Dieses Problem kann man generell lösen, indem man die zwischengespeicherten Daten nun als unaktuell kennzeichnet und sie dann neu abfragt. Und jetzt kommt ins Spiel, wo du die Daten abzulegen gedenkst. Im Formular, das bei A auf dem Browser rumlungert - darauf hat B keinen Zugriff. Abgesehen davon, dass die beim beim Client gelagerte Daten ohne weiteres nicht gegen Manipulation geschützt sind. Eine Session lässt die Daten im Server, aber auch da hat normalerweise nur jeder auf seine eigenen Sessiondaten Zugriff. Es ist zwar über normale Dateizugriffe möglich, alle Sessiondateien zu manipulieren, doch ob es performant ist, alle Dateien durchzuschauen, ob der Datensatz darin enthalten ist, wage ich zu bezweifeln.

Ein Zwischenspeicher für die Datensätze muss also in einem Mehrbenutzersystem allgemein erreichbar sein. Dazu gibt es Cache-Systeme. Eine Billig-Lösung hingegen wäre, eine Session mit definierter Session-ID zu verwenden. Wobei jedoch zu beachten ist, dass das Schreiben der Sessiondatei auch nicht kostenlos zu haben ist und bei vielen Datensätzen wieder unperformant werden kann.

Allerdings solltest du immer beachten, je mehr Code du produzierst, desto mehr musst du am Ende pflegen. Die beste Lösung ist am Ende oft die einfachste.

Lo!