![]() |
Datenbank: MSSQL • Version: 2012 • Zugriff über: AnyDAC
MSSQL Server mit 100 Clients
Hallo Zusammen,
Ich habe eine DB (MSSQL 2012, Zugriff über AnyDAC) mit ca. 30 Tabellen. Nun sollen bis zu 100 Clients parallel darauf zugreifen. Was ist hier der beste Ansatz, damit gegenseitiges Blockieren u.ä. verhindert wird ? Alle Vorschläge willkommen ! |
AW: MSSQL Server mit 100 Clients
Zitat:
|
AW: MSSQL Server mit 100 Clients
Zitat:
|
AW: MSSQL Server mit 100 Clients
Ohne die genannte Version der DB zu kennen (auch nicht die aktuelle):
Es sind die Fähigkeiten der DB zu berücksichtigen und die Vorgänge in der Anwendung. zum ersten: Alte MS SQL Versionen (wahrscheinlich noch älter als die genannte) sind nicht unbedingt geeignet. Wegen fehlendem Rowlevel locking usw.. Je neuer die SQL Server Version, desto besser. zum zweiten: Eine Anwendung/DB, die keine konkurrierenden Inhalte verwaltet, ist viel unproblematischer als eben bei konkurrierenden Inhalten. Bspw. die Angabe "Artikel auf Lager" ist schwieriger zu verwalten, als Sachbearbeitung Antrag auf "Baugenehmigung für Gaubenfenster". Der Bauantrag ist Datentechnisch autark und wird auch mit 100 Clients die ähnliches machen, nicht so problematisch wie der Abverkauf limitierter (realer) Artikel. Wenn 100 Clients sich um den letzten Artikel kloppen, mglw. noch der Preis verhandelt wird, wird es kniffelig (bei jeder DB, dann müssen Abläufe her, die diese Probleme berücksichtigen). so mal grob, je nachdem, was eigentlich genau das Problem ist. |
AW: MSSQL Server mit 100 Clients
Zitat:
Ein Sperren des Datensatzes zur Bearbeitung würde ich persönlich nicht realisieren. Das bringt mehr Probleme als es löst. |
AW: MSSQL Server mit 100 Clients
Zitat:
Ich denke alle Version < 2008 wird man praktisch nichts mehr "in the Wild" antreffen. Wir sperren mittlerweile alles < 2005 aktiv aus (Meldung Programmstart). |
AW: MSSQL Server mit 100 Clients
Zitat:
Wenn es normal ist das z.B. 1 Stunde auf einen Datensatz gearbeitet wird, wird man sich keine Freude machen, wenn der User erst nach 1 Stunde mitbekommt das seine Arbeit "für die Katz ist". Ein Mergen der Änderungen wird für die meisten Nutzer zu komplex sein um Sie praktikabel zu Nutzen. |
AW: MSSQL Server mit 100 Clients
Zitat:
Daraus leite ich ab, dass es innerhalb dieser Versionen weitgehend ähnlich ist und danach (>2012) weitere Verbesserungen kamen. Kann natürlich sein, dass die Seite auch einfach älter war, ich verfolge das nicht aktiv bei MS. "ein Sperren des Datensatzes würde ich nicht.." Sehe ich auch so, (unnötige) Sperren engen das System ein, vermutlich irgendwie exponentiell oder so. Also wäre optimistic locking angesagt. Sprich wenn's mal "knallt" gibt's eine nette Meldung, die Eingaben sind futsch, der User bekommt sofort ne Info und muss nacharbeiten. Hier ist es dann eine Frage des Programmaufwandes, elegant abzufangen und geänderte Werte zu retten usw. Hab mal irgendwo in uralten Dot Net Komponenten die generierten DML Commandos von V Studio gesehen, wo die where clause aus der Nennung sämtlicher Felder bestand. Fand ich sehr witzig, dachte zuerst, der hat den PK nicht gefunden, aber im Grunde ist es ein einfacher clientseitiger Schutzmechnismus für optimistic locking. Grundsätzlich könnte man Sperrprobleme mit sowas wie Kontingenten auf fachlicher Ebene regulieren, sehr einfach und unintelligent, aber ziemlich sicher. Jeder (angemeldete) User bekommt einen Range von Daten, die nur er bearbeiten darf/kann. Das passt sicher nicht für alle Workflows, aber oft reicht es. |
AW: MSSQL Server mit 100 Clients
Zitat:
Zitat:
Richtig spanned wird es dann, wenn zu dem Datensatz noch etliche abhängige Datensätze gehören, die womöglich noch alle mit gesperrt werden müssen. Zitat:
|
AW: MSSQL Server mit 100 Clients
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz