dedlfix: Summaryfelder

Beitrag lesen

Tach!

hab da mal eine grundsätzliche Frage.
Und zwar hab ich da einen Datensatz. Dieser Datensatz hat in der Datenbank ein paar Statistiken (n:m). Die Statistiken ändern sich nicht sehr häufig. Diese Abfragen sind relativ Performancelastig.
Hier sollte Deine Optimierung ansetzen. Guck Dir die Queries mit explain an, dann siehst Du auch, wo ein Index nützlich sein könnte.

Wenn ich mich recht erinnere, war es in seinem Fall bereits ein mittelschweres Problem, die Abfragen entsprechend dem gewünschten Ergebnis zu formulieren. Da war mit Indexen nicht viel zu gewinnen. Deswegen hat er ja nun die nichtnormlisierte Form mit den Summary-Feldern, weil sich das wesentlich leichter handhaben lässt.

Wenn per RDBMS mit Daten gerechnet wird, das ist nicht das Performance-Problem.

So pauschal gesagt ist das nicht richtig. Wenn in der WHERE-Klausel ein zu berechnender Ausdruck als Bedingung steht, muss dieser Ausdruck für jede Zeile berechnet werden. Und ein Index kann dafür nicht herangezogen werden, weil es keine berechneten Indexe gibt. (dBase konnte das früher.) Bei vielen Datensätzen oder auch sehr vielen Abfragen bei weniger Datensätzen kann das sehr wohl zum Problem werden.

Darüber hinaus kannst Du Updates auch triggern und die Ergebnisse in weiteren Tabellen ablegen.

Das wäre eine Möglichkeit, den Hauptdatensatz gezielt neu berechnen zu lassen. Bedingung ist, dass die Unterdatensätze jeweils einen Verweis auf den Hauptdatensatz enthalten.

dedlfix.