Datensätze gelockt obwohl nichts gemacht wird

so-photo

Neuer Benutzer
Beiträge
3
Hallo Zusammen,

ich bin bei MS SQL noch recht neu, und unerfahren. Leider mussten wir von Advantage Database auf den Server wechseln. Jetzt habe ich ein relativ großes Programm umgesetzt und folgendes Problem:
Wir arbeiten mit Delphi und dem SDAC von Devart. Alle Datenbänke werden mit dem Lockmode "lmNone" geöffnet. Das Programm ist für viele User vorgesehen. Leider tritt jetzt häufiger ein Lock auf welches das Programm einfrieren läßt, bis der andere User das Programm beendet. Ich habe keinen blassen Schimmer warum das passiert. Zu 99 % läuft das Programm normal ohne Probleme. Kann mann auf dem Server feststellen was genau geblockt wird und welcher Datensatz?
Für Anregungen wäre ich sehr dankbar!
 
Werbung:
Willkommen in der hässlichen Welt der SQL Server Locks wo ein lesender Zugriff einen schreibenden Zugriff blockiert :(

Du solltest Dir überlegen in der Datenbank die Option READ_COMMITTED_SNAPSHOT einzuschalten. Damit verhält sich SQL Server wie eine moderne Datenbank des 21. Jahrhunderts und lesende und schreibende Zugriffe blockieren sich nicht gegenseitig.
 
Willkommen in der hässlichen Welt der SQL Server Locks wo ein lesender Zugriff einen schreibenden Zugriff blockiert :(

Du solltest Dir überlegen in der Datenbank die Option READ_COMMITTED_SNAPSHOT einzuschalten. Damit verhält sich SQL Server wie eine moderne Datenbank des 21. Jahrhunderts und lesende und schreibende Zugriffe blockieren sich nicht gegenseitig.


Super! Dankeschön! Bei mir stand bisher alles auf OFF. Der ADS ist in der Beziehung mega einfach, und deswegen fehlt mir die Erfahrung.
Und so tolle Kommentare wie schon mal ne Suchmaschine genutzt sind immer klasse. Ja, aber man muss wissen wonach man eigentlich suchen muss...

Ich werde das jetzt umstellen und hoffe dass dann alles läuft!
VG
 
Willkommen in der hässlichen Welt der SQL Server Locks wo ein lesender Zugriff einen schreibenden Zugriff blockiert :(

Du solltest Dir überlegen in der Datenbank die Option READ_COMMITTED_SNAPSHOT einzuschalten. Damit verhält sich SQL Server wie eine moderne Datenbank des 21. Jahrhunderts und lesende und schreibende Zugriffe blockieren sich nicht gegenseitig.

Hmm, das hat das Problem eigentlich fast nur verschlimmert... jetzt hängts an allen Stellen... Der wartet einfach und läuft erst weiter wenn das andere Programm beendet wird :-/
hatte das mit der Funktion hier eingeschaltet :

use master
go
alter database [IMF-SEC]
SET READ_COMMITTED_SNAPSHOT ON;
go

Anschließend auch den Server neugestartet...
Das System welches wir hier programmiert haben ist eigentlich recht einfach. Ca 95% Lesezugriffe und max 5% Schreiben. Und das auch nur wenn der User eine Funktion ausführt...
 
Hmm, blöd - dann weiß ich aber leider auch nicht weiter.
Ich muss glücklicherweise nur selten mit SQL Server arbeiten.
 
Werbung:
Zurück
Oben