Select auf Views in .Net Programm blockiert Tabelle

09/01/2008 - 10:13 von Arnd Iffland | Report spam
Hallo,

ich habe einen View vTabelle definiert und verwende diesen mittels
"SELECT * FROM vTabelle" um alle Datensàtze u durchlaufen.
Dazu verwende ich ein SqlCommand und einen SqlDataReader.

Beim Versuch ein Datenfeld upzudaten (ExecuteNonQuery), bekam ich ein
TimeOut.
Im Aktivitàtsmonitor des Enterprisemanagers kann man erkennen, dass der
SELECT Befehl zu einer Blockierung führt.

Kann mir jemand den Grund erklàren?

Ich habe mir übrigens geholfen, indem ich die Daten in ein DataTable
lese und dieses durchlaufe um das Update durchzuführen.

Wenn man das obige SELECT auf eine "normale" Tabelle statt eines Views
macht funktioniert alles einwandfrei.

Gruß,

Arnd Iffland


 

Lesen sie die antworten

#1 Olaf Pietsch
09/01/2008 - 17:13 | Warnen spam
Hallo Arnd,

"Arnd Iffland" schrieb im Newsbeitrag
news:%23GJF3$
ich habe einen View vTabelle definiert und verwende diesen mittels
"SELECT * FROM vTabelle" um alle Datensàtze u durchlaufen.
Dazu verwende ich ein SqlCommand und einen SqlDataReader.

Beim Versuch ein Datenfeld upzudaten (ExecuteNonQuery), bekam ich ein
TimeOut.
Im Aktivitàtsmonitor des Enterprisemanagers kann man erkennen, dass der
SELECT Befehl zu einer Blockierung führt.

Kann mir jemand den Grund erklàren?


Das könnten möglicherweise die Sperren des SQL Servers sein, lass dir mit
dem SSMS die Sperren anzeigen, wenn Deine Statements aktiv sind

Vielleicht kann auch ein ein nolock beim SELECT helfen:
SELECT * FROM vTabelle WITH (nolock)

Sperren und Zeilenversionsverwaltung
http://msdn2.microsoft.com/de-de/li...87101.aspx

Sperren im Datenbankmodul
http://msdn2.microsoft.com/de-de/li...90615.aspx

SET TRANSACTION ISOLATION LEVEL
http://msdn2.microsoft.com/de-de/li...73763.aspx

Sperrhinweise
http://msdn2.microsoft.com/de-de/li...89857.aspx





Gruß Olaf
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
Blog (http://www.sqlpass.de/PASSUserBlogs...x?BlogID=3)
Regionalgruppe Köln/Bonn/Düsseldorf
(http://www.sqlpass.de/Regionalgrupp...fault.aspx)

Ähnliche fragen