[MSSQL] Lock-Situation beheben

23/06/2010 - 15:38 von Lutz Uhlmann | Report spam
Hallo NG!

Ich hatte eben gerade eine seltsame Situation auf einem SQL-Server eines
Kunden.

Verschiedene Nutzer konnten nicht in eine Tabelle X schreiben.

Daraufhin habe ich auf dem Server nachgeschaut und als Übertàter einen
Prozess eines anderen Nutzers ausgemacht, welcher als angehalten und mit
Wartetyp ASYNC_NETWORK_IO gekennzeichnet war.
Im SELECT stand eine SELECT-Abfrage auf eine View welche auch Tabelle X
beinhaltet. An dieser Stelle wird kein UPDATE oder INSERT gemacht, es
ist eine reine Anzeige!

Ich habe erstmal den Prozess abgeschossen, da der Nutzer nicht
erreichbar war und der Betrieb ja weiter gehen muß.

Aber wie geht man am besten mit sowas um und wie verhindert man sowas am
besten??

Lutz
 

Lesen sie die antworten

#1 Lutz Uhlmann
23/06/2010 - 16:53 | Warnen spam
Hallo NG!

Wir haben ein wenig getestet. Die Situation stellt sich jetzt
folgendermaßen dar.

Das Problem tritt auf, wenn ein von zwei Abfragen geöffnet wird in der
Anwendung. Die Abfragen sind direkt im Access-Frontend verlinkt.

Öffne ich dort die Abfragen, dann werden anscheinend eine Unmenge
Sperren erteilt. Ich habe parallel dazu im SSMS den Standardbericht
"Ressourcensperrstatistik nach Objekten" geöffnet und dort erscheinen
wàhrenddessen mehrere hundert bis tausend Sperren. Teilweise dreistellig
auf einer Tabelle.
Und diese Sperren scheinen dann die Bearbeitung einiger Tabellen zu
verhindern.

Aber warum tauchen diese Sperren hier so massiert auf?
Bei anderen Abfrage konnte ich dieses Verhalten nicht beobachten!
Hat das eventuell was damit zu tun, daß die Abfragen um die es geht
relativ kompliziert sind und auf viele Abfragen und Tabellen zugreifen?

Wie kann ich diesen Problem am Besten angehen? Wo kann man ansetzen?

Kann ja nicht angehen, daß wenn ein Nutzer sich Daten nur ansieht, kein
anderer mehr in die Tabelle schreiben kann!

Lutz

Ähnliche fragen