Ein hoher gemeinsamer Zugriff in Microsoft SQL
Server verursacht Transaktions-Deadlock-Fehler, da Benutzer, die Schreibvorgänge durchführen, den Lesezugriff anderer Benutzer auf Datenbankressourcen blockieren. Sie können die Wahrscheinlichkeit von Deadlocks durch Festlegen der Option READ_COMMITTED_SNAPSHOT
ON für Ihre Datenbank verringern.
Vorgehensweise
So verringern Sie Deadlock-Fehler in einer Microsoft SQL
Server-Datenbank:
- Fahren Sie alle Server und Clients herunter, die eine Verbindung zu Ihrer Datenbank (DBName) herstellen können, und stellen Sie sicher, dass keine weiteren Verbindungen zu Microsoft SQL
Server bestehen.
- Stellen Sie eine Verbindung zu Microsoft SQL
Server her und setzen Sie den folgenden SQL-Befehl ab, um zu ermitteln, ob
die Snapshotisolation für DBName aktiviert ist:
SELECT Name, is_read_committed_snapshot_on FROM sys.databases
Dabei ist Name='DBName'.
Wenn die Snapshotisolation für DBName aktiviert ist, überspringen Sie den Rest dieser Prozedur.
- Setzen Sie den folgenden Befehl ab, um die Snapshotisolation für DBName zu aktivieren:
ALTER DATABASE DBName SET READ_COMMITTED_SNAPSHOT ON
- Starten Sie Microsoft SQL
Server erneut und setzen Sie den folgenden SQL-Befehl ab, um zu bestätigen, dass die Einstellung zur Snapshotisolation für DBName in Kraft ist:
SELECT Name, is_read_committed_snapshot_on FROM sys.databases
Dabei ist Name='DBName'.