Viele Clients auf DB



  • Servus Leute,

    ich habe da mal ne Frage? Wie sieht es derzeit aus, wenn man aus mehreren Klienten(Programm) auf einen DB Server(MSSQL) zugreifen möchte?
    Wie setzt man das um? Sei es auf Software Seite oder auf der DB Seite?

    Ich stelle mir das nämlich ein wenig problematisch vor wenn, z.B. 100000 Clients auf ne DB zugreifen möchten.

    Danke im Voraus jede Anregung



  • Was meinst du mit "problematisch"?

    Von der Performance her bzw. Wartezeiten der Clients oder hast du Angst, dass es zu Inkonsistenzen kommt, weil mehrere gleichzeitig an der DB arbeiten?



  • Dafür gibt es Load Balancing und Clustering. Einfach gesagt, man stellt einfach 100 SQL Server auf mit entsprechender Hardware lol



  • Brauchst du denn wirklich soo viele einzelne Sessions? Warum nicht wenige Sessions die durch eine Schnittstelle von vielen geteilt werden? Das geht natürlich nicht, wenn die untereinander transaktiosnsicher sein müssen o.ä



  • 100.000 Client auf einen Server geht sowieso nicht.
    Soviele Port sind da nicht bereit sich zu öffnen.

    Wenn man 100.000 Client hat dann sollte man nachdenken ob man nicht genug Geld hat um (wie schon gesagt) Load Balancing und Clustering zu betreiben.
    Wenn man die DB richtig aufbaut geht das bei MSSQL sogar mit Replikation und INSERTS auf allen Servern.



  • Also ich wollte eigentlich wissen, wie die da draußen das machen. Wenn ich zum Beispiel jetzt eine Applikation schreibe, welche in einem Unternehmen mit zum Beispiel 10000 Mitarbeitern auf eine DB zugreifen, wie sieht das auf der DB Seite aus. Welche Techniken kommen zum Einsatz. Gibt es ne Regel zum Beispiel bis 1000 Clients so, ab 1000 Clients so etc.

    Besten Dank nochmals fürs Feedback.



  • Die greifen ja nicht alle gleichzeitig auf die DB zu. Regeln gibt es keine fixen, das hängt natürlich von deiner Hardware genauso wie von der Art der Zugriffe ab.

    Meistens kannst du das Lesen sehr gut skalieren und du hast keine Probleme in Performancenöten einfach mit weiterer Hardware entgegenzuwirken. Richtig übel wird es erst wenn du mit den Schreibzugriffen nicht mehr hinterher kommst (Replikation von INSERTs auf verschiedenen Servern = alles steht sobald ein Server nicht mehr reagiert...)

    Dementsprechend muss man dann andere Eigenschaften auflockern um immer noch performant arbeiten zu können: Meistens wird die Konsistenz dann nur noch eingeschränkt zur Verfügung gestellt. (Anderes Stichwort: CQRS, habe ich vor kurzem auf einer Konferenz gehört)

    Genauere Zahlen findest du bestimmt in Reports und Benchmarks von Datenbankservern, da gibt es eigene Kennzahlen.

    MfG SideWinder



  • Ja vielen lieben Dank.


Log in to reply