Wie kann man den Isolation-Level der Datenbank ermitteln?
Der Isolation-Level steuert, wie die Datenbank mit Statements umgeht und welche Sperren es gibt.
Zum Nachlesen:
https://de.wikipedia.org/wiki/Isolation_(Datenbank)
https://learn.microsoft.com/de-de/sql/t-sql/statements/set-transaction-isolation-level-transact-sql?view=sql-server-2017
ReadCommitted ist der Standard. Mit anderen Worten bedeutet es, dass es Sperren gibt, wenn Daten geschrieben oder geändert werden. Die Prozesse warten aufeinander. Im allgemeinen gibt es Zeilensperren. Es ist ein sicherer Weg aus Daten-Sicht, kein Datenverlust und immer Anzeige der aktuellen Daten. Allerdings kann es bei vielen Anfragen/Updates auf einer Tabelle zu Deadlocks kommen. Sollten die Deadlocks nicht mit Setzen von Indexen oder Erweiterung des Speichers des MSSQLServer (RAM und CPU sowie Plattenplatz oder auch schnelle Festplatte) oder anderen Optimierungen behebbar sein, kann man über das Umstellen nachdenken.
Bitte die Risiken beachten!
Schritt-für-Schritt-Anleitung
Abfrage des aktuellen Isolation-Levels
Wir empfehlen generell Standard = ReadCommitted.
In speziellen Fällen kann es helfen, RepeatableRead zu setzen. Bei Performanceproblemen, die nicht mit Indexen oder Speichererweiterung des MSSQL-Servers behoben werden können, kann Snapshot eingestellt werden.
Bei Umstellung des Isolationlevels bitte die Risiken beachten!
Verwandte Artikel