Berechnungen vom Programm oder vom Server durchführen lassen? Vor- und Nachteile
Hi Community,
ich habe da noch eine Frage bezüglich Berechnungen. Und zwar würde ich gerne wissen, ob es etwas ausmacht Berechnungen vom Server durchführen zu lassen oder vom Programm.
Um es einfach zu halten, habe ich versucht mir ein kleines Beispiel auszudenken.
Und zwar möchte ich das Volumen ausrechnen und in SQL Datenbank speichern.
Möglichkeit 1:
Ich schreibe ein kleines Programm mit den Feldern A, B, C und V. Dann lasse ich den Benutzer die Flächen A,B und C ausfüllen und lasse dann V= Volumen durch eine einfache Funktion (A*B*C) berrechnen und dann die Werte in die SQL Datenbank speichern.
Möglichkeit 2:
Ich schreibe ein kleines Programm mit den Feldern A,B und C. Der Benutzer gibt die Daten ein und schickt sie an den SQL-Server. Danach übernimmt der SQL Server die Berrechnung.
Mir ist klar, das bei diesem kleine Beispiel die Zeit wohl keine Rolle spielt, aber wie ist es bei größeren Projekten? Welche Methode ist für die Schnelligkeit am besten geeignet (möglicherweise noch eine ganz andere nicht aufgeführte)?
Vielen Dank und Gruß
speckles
ich habe da noch eine Frage bezüglich Berechnungen. Und zwar würde ich gerne wissen, ob es etwas ausmacht Berechnungen vom Server durchführen zu lassen oder vom Programm.
Um es einfach zu halten, habe ich versucht mir ein kleines Beispiel auszudenken.
Und zwar möchte ich das Volumen ausrechnen und in SQL Datenbank speichern.
Möglichkeit 1:
Ich schreibe ein kleines Programm mit den Feldern A, B, C und V. Dann lasse ich den Benutzer die Flächen A,B und C ausfüllen und lasse dann V= Volumen durch eine einfache Funktion (A*B*C) berrechnen und dann die Werte in die SQL Datenbank speichern.
Möglichkeit 2:
Ich schreibe ein kleines Programm mit den Feldern A,B und C. Der Benutzer gibt die Daten ein und schickt sie an den SQL-Server. Danach übernimmt der SQL Server die Berrechnung.
Mir ist klar, das bei diesem kleine Beispiel die Zeit wohl keine Rolle spielt, aber wie ist es bei größeren Projekten? Welche Methode ist für die Schnelligkeit am besten geeignet (möglicherweise noch eine ganz andere nicht aufgeführte)?
Vielen Dank und Gruß
speckles
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143357
Url: https://administrator.de/contentid/143357
Ausgedruckt am: 06.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Kommt auf die Anzahl der Clients und die "Rechen-Power" des Servers an. Größere Berechnungen würden zumindest zeitweise den Server "beschäftigen" (die anderen Clients müssten hier warten, schließlich arbeitet der Dienst alles nacheinander ab). Ich habe schon mit vielen DB-Anwendungen gearbeitet (z.B. Navision) - die Berechnung hat stets der Client übernommen. Bei den heutigen PCs mit 2 oder gar 4 Cores (sofern die Anwendung diese nutzt) ist es absolut kein Problem.
Moin speckles,
die Berechnung von Werten wird so oder so nicht der Engpass sein, sondern immer
Parallelisieren lässt es sich ja nur sinnvoll, wenn in deinem Beispiel sichergestellt ist, dass nicht gleichzeitig 100 Benutzer die gleiche Berechnung mit den vom Server geholten Werten A, B und C machen und logischerweise auch dasselbe Ergebnis im selben Ergebnissatz speichern wollen.
In der Tendenz solltest du (Massen-)Berechnungen auf dem Server immer außerhalb der Online-User-Spitzenzeiten als Batch/als Stored Procedure durchführen lassen und bei allem, was ohnehin Benutzerinteraktion (Eingabe von Werten oder Parametern) erfordert so gestalten, dass der Datenverkehr zwischen Clients und Server gering bleibt. Also auf dem Client "rechnen" lassen.
Grüße
Biber
die Berechnung von Werten wird so oder so nicht der Engpass sein, sondern immer
- das Volumen der transferierten Daten von Client nach Server und umgekehrt
- serverseitig das Finden der Daten, die der Client haben will
- und vor allem, wenn Daten (egal ob die Detaildaten oder die Ergebnisdaten) auf dem Server gespeichert werden sollen das Handeln von konkurrierender Verarbeitung.
Parallelisieren lässt es sich ja nur sinnvoll, wenn in deinem Beispiel sichergestellt ist, dass nicht gleichzeitig 100 Benutzer die gleiche Berechnung mit den vom Server geholten Werten A, B und C machen und logischerweise auch dasselbe Ergebnis im selben Ergebnissatz speichern wollen.
In der Tendenz solltest du (Massen-)Berechnungen auf dem Server immer außerhalb der Online-User-Spitzenzeiten als Batch/als Stored Procedure durchführen lassen und bei allem, was ohnehin Benutzerinteraktion (Eingabe von Werten oder Parametern) erfordert so gestalten, dass der Datenverkehr zwischen Clients und Server gering bleibt. Also auf dem Client "rechnen" lassen.
Grüße
Biber