Sven: SQL-Abfrage Effizienz? Strategieänderung

Beitrag lesen

Hi Andreas, Hi Rolf,

danke für Eure Ansätze. ich habe mir nun eine andere Strategie überlegt.
Hintergrund ist, dass ich diese Abfrage für verschiedene IDs in verschiedenen Tabellen recht oft abfragen müsste, das wird mir so aber nicht effizient genug. Bei einer einzelnen Abfrage ist die Query ok, aber diese dann ca. 6-8 mal plus noch 4-6 weitere kompliziertere Abfragen machen das dann über Ajax alle 3-6 Sekunden eingebunden wirklich zu einem Reccourcenfresser.

Was mache ich da eigentlich?

Es geht darum, dass von verschiendenen Usern Vorgänge bearbeitet werden können, die dann in einer Art Endvorgang enden. Die Daten des Endvorgangs sollen immer aktuell sein, also muss ich dem User einen Hinweis geben, wenn sich Daten geändert haben und der Vorgang aktuallisiert werden muss. Dennoch soll der user selber entscheiden, ob oder wann er aktualisiert, er soll nur informiert werden. Und da ich keine Websockets nutzen kann, muss hier JS, bzw. Ajax her.

Meine neue Strategie ist nun aber, auf alle relevanten Tabellen je einen Insert, Update und Delete Trigger zu legen, der VorgangsID und Datetime in einer Kontrolltabelle speichert. So braucht mein per Ajax eingebundenes Script nur noch prüfen, ob es einen Eintrag in der Kontrolltabelle gibt, der eine der VorgangsIDs des Endvorgangs beinhaltet und zugleich jünger ist als der Zeitpunkt des Aufrufes des Endvorgangs.

Da ich nach Beendigung des Endvorgangs die Kontrolltabelle säubern kann, könnte ich sicher mit weniger als 1000 aktuellen Einträgen in der Kontrolltabelle auskommen. Da dürfte dann die eigentliche Kontrolle rasend schnell gehen und ich kann sie alle 2-3 Sekunden ausführen.

Sven