Wie bekomme ich den Eigentümer und das gesperrte Objekt vom locks_lock_timeouts_greater_than_0 Event in SQL Server?

8

Ich erfasse locks_lock_timeouts_greater_than_0 -Ereignisse mit erweiterten Ereignissen in SQL Server. Die Ereignissitzung folgt:

%Vor%

Wie kann ich feststellen, welches Objekt gesperrt ist und wer es gerade sperrt?

AKTUALISIEREN : Ich brauche dies für SQL Server 2008. Wie kann ich Sperrzeitüberschreitungen bei Versionen vor 2012 debuggen?

    
TN. 20.06.2012, 14:46
quelle

1 Antwort

2

Es sieht so aus, als ob die gewünschten Informationen von diesem Ereignis nicht erfasst werden.

Sie können sehen, welche Felder für ein Ereignis verfügbar sind:

%Vor%

das Ergebnis ist:

%Vor%

In SQL 2012 wurde dieses Ereignis jedoch durch ( Ссылка ) ersetzt Folge von Feldern

%Vor%

Daraus konnte ich die Datenbank (database_id) und in meinem Fall Tabelle (verschiedentlich in object_id, associated_object_id, resource_0) von ihren Ids ableiten.

Ich habe keinen offensichtlichen Weg gesehen, zu finden, wer das Objekt von den von diesem Ereignis erfassten Daten abschließt.

BEARBEITEN - siehe Zeitlimit für SQL Server-Sperre überschritten Datensätze in einer Schleife löschen für ein Beispiel zur Verwendung von sp_lock und sp_who2 zum Debuggen der Ursache eines Sperrzeitlimitereignisses.

    
bkr 22.06.2012 23:34
quelle