Schonmal überprüft warum dein Statement so "lange" dauert?
- Index vergessen?
- Schlechte Where-/Join-Clause die keinen Index benutzt?
- Zwanzig unnötige Tabellen dazugejoint?
- Teure Berechnungen dabei laufen?
Das kann tausende Gründe haben... Einfach quick&dirty (bewusst Fehler einbauen, weil man nicht weiß wie man andere behebt) kann jeder... Wenn es nur dass wäre... Man, warum bin ich noch kein Professor der Astrophysik oder Quantenmechanik?
Ich gehe derzeit einfach davon aus, dass es an deinem Modell liegt. Basierend auf dem ganz einfachen Fakt das sich deine Anforderung erst einmal ziemlich simpel anhört.
Wenn du jetzt tausend Zeilen transponieren wolltest und dabei jede dritte mit jeder 18ten multiplizieren und durch jede 32te teilen wolltest... Dann hätte ich gesagt "JA, da lohnt sich eine zeitgesteuerte Berechnung (In Form einer gesonderten Tabelle oder Materialized View, etc), einfach weil es ad hoc zu lange dauert."... Aber das ist mMn einfach nur ein schlecht geplantes Modell.... Und das bleibt ersteinmal so, bis man mich vom gegenteil überzeugen kann

5 Tabellen joinen ist im Normalfall keine wirkliche Kunst... Solange man wenigstens die Grundlagen beachtet.
Genau dieser Konflikt ist doch der Grund für diesen Thread: [...]
Nur was macht man, wenn die Anfrage auf den bestehenden Daten zu lange dauert? Da ist die Lösung über ein zusätzliches Attribut mit Trigger doch die beste Lösung oder?
Da du aber anscheinend immer noch nicht so ganz verstanden hast worauf ich hinaus will... Um deine anfängliche Frage wirklich zu beantworten -
Wie löst man sowas optimal, evt. mit Triggern? Ich habe das Problem schon in dieser Anwendung mehrfach.
Optimal liegt hier wirklich im Auge des Betrachters.
Aus Performance-Sicht? - Sehr wahrscheinlich ja.
Aus Redundanz-Sicht? - Definitiv Nein.
In Betracht auf Normalisierung? - Definitiv Nein.
Aus meiner Sicht? - Daten die sich ad hoc berechnen lassen in einer eigenen Spalte zu verewigen, nur weil man sein Modell nicht erneuern will? Nein. Allerdings Daten die aus Gründen (von denen du bisher noch keine genannt hast) wie z.B. komplexe Berechnungen oder ähnliches die Performance einstürzen lassen... kann man durchaus so hinterlegen. Allerdings nur unter dem Umstand das man nocheinmal sämtliche möglichen Fehlerquellen durchgegangen ist und wirklich keine Möglichkeit gefunden hat diesen zu beheben. (Bei Berechnungen hilft sehr oft Mathe weiter... Terme lassen sich sehr gerne vereinfachen)
Aber wie immer... Es ist nichts in Stein gemeißelt und andere in diesem Forum sind wahrscheinlich nicht so zimperlich mit solchen "Kleinigkeiten" wie ich

(Und aktive Leser haben vllt. gemerkt das der Teil "eigene Meinung" den restlichen Teil stark überwiegt...)
Aber wer beim Auto fahren den Blinker vergisst... Ne ?
