| | | | |
| |||||||
| Datenbanken SQL und Co |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Ich würde den Informationsverlust so gering wie möglich halten, außerdem können sich mit der Zeit nicht unbeträchtliche Rundungsfehler einschleichen, wenn du den Durchschnittswert jedes mal neu berechnest und schreibst. Lieber dynamisch. Die Resourcen die man dafür braucht sind vermutlich vernachläßigbar. |
| | |
| | |
| Moderator Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() | Es geht ja um viel komplexere Rechnungen als diese hier. Habe es aus Verständnisgründen bis aufs minimum vereinfacht. Mir geht es darum das die Rechnung viele Variablen hat und das Ergebnis auf mehreren Seiten gebraucht wird. Wenn ich die Berechnung nur bei INSERT/UPDATE durchführe und speichere dann hab ich das Ergebnis da und kannst millionen mal aufrufen. Mach ich das aber nicht so muss ich die Rechnung millionen mal ausführen und das wird sicherlich Performance Probleme geben oder meint ihr nicht? Also die Rechnung sieht so aus das ich Summen und Durchschnittswerte pro Tag ausrechne und unterscheide zwischen vollen und anteiligen Beträgen wobei der Anteil auch wieder variabel ist und es geht jeweile um einige tausend Datensätze. EDIT: nicht nur pro Tag sondern auch pro Produkt und Tag |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 02.04.2008
Beiträge: 4.032
![]() | Natürlich musst du schlussendlich selber herausfinden, was besser ist. Wahrscheinlich wirst du um ein paar Messungen nicht herumkommen. Aber ich würde, wenn immer möglich, keine berechneten Daten in der DB ablegen. Wenn du die Berechnungslogik in Datenbank-Funktionen speicherst - vielleicht genügen sogar Views - sollte das performant genug sein. Im andern Fall musst du dafür sorgen, dass bei jeder Änderung auch die Berechnung neu durchgeführt wird. Mal abgesehen davon, dass die DB dann natürlich nicht mehr normalisiert ist.
__________________ Gruss L |
| | |
| | |||
| Moderator Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Zitat:
Zitat:
(man kanns eben nicht Pauschal sagen Mich würde es jetzt aber doch mal intressieren wie du das mit Triggern und Stored Procedures gemeint hast? Du meinst für den Fall, dass die Statistik immer aktuell sein soll und du dann mit einem Trigger abfängst wenn was geändert wird? Ich glaube nicht, dass er so aktuelle Statistiken braucht. Und dass es manchmal sinnvoll sein kann die Normalisierung zu brechen hast du ja auch schon erwähnt. Ich bleib dabei: Pauschal kann man das nicht sagen.
__________________ Today you...Tomorrow me. | ||
| | |
| | ||
| Moderator und Wett-König | @Agrajag: Zitat:
@ALL: Grundsätzlich bleibt zu diesem Anwendungsfall zu sagen, dass man es auf den Fall ankommen lassen sollte/muss. Nehmen wir ein Profil in einem Forum. Hier müsste jedesmal bei der Ausgabe eines Threads die Anzahl der Beiträge eines Benutzers gezählt werden, was über eine "posts"-Tabelle sicher eine Zeit benötigt, selbst wenn es Indizes gibt. Denn hier bleibt nichts anderes übrig als ein Code: SELECT COUNT(*) AS count WHERE username = 'cycap'; Man muss also IMHO zunächst die Komplexität der Berechung und die Performance derselben beurteilen um eine Entscheidung treffen zu können. Sorry Zergling, aber da muss ich dir - und das kommt eigentlich nie vor - wiedersprechen.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | |||
| Moderator Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Zitat:
Ich hab noch nicht mit sovielen unterschiedlichen DBMS Kontakt gehabt und kenne Materialized Views nur in Oracle bzw. weiß dass sie bei MySQl (noch) nicht unterstützt werden (oder hat sich das mittlerweile geändert?). Ich hab jetzt aber mal etwas gesucht und PostgreSQL unterstützt es auch. Scheint also wohl eher so zu sein, dass mal wieder nur MySQL Materialized Views nicht kennt
__________________ Today you...Tomorrow me. | ||
| | |
| | |
| Moderator und Wett-König | Nich ganz fürchte ich.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Sporttabelle aus Ergebnissen berechnen | Datenbanken | 6 | 13.03.2006 20:37 | |
| Zanox Statistik?? | Diego1978 | Beitragsarchiv | 2 | 26.11.2005 18:55 |
| Off-Topic Beiträge zählen?? (Statistik) | stf.stream | Off-Topic Diskussionen | 54 | 17.03.2005 19:49 |
| statistik php-web | Sonja | PHP-Fortgeschrittene | 2 | 04.03.2005 10:06 |
| Help, Zahlen aus DB berechnen | PHP Tipps 2004-2 | 6 | 29.12.2004 17:55 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| oracle statistiken berechnen, zeitpunkt berechnen, statistiken berechnen, oracle statistik neu berechnen, oracle statistiken neu berechnen, zeitpunkte berechnen, performance berechnen oracle, oracle statistik zeigen, statistik starten auf oracle, oracle datenbank statistik neu berechnen, statistiken neu berechnen oracle, statistiken neu berechnen postgres, oracle statistik berechnen, php statistik berechnen, statistiken errechnen, statistiken berechnen zeit, statistiken berechnen mit php, oracle statistiken aktuell, oracle statistiken neu berechnen lassen, db statistik berechner |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.