Ich habe gespeicherte Prozeduren in SQL Server T-SQL, die von .NET innerhalb eines Transaktionsbereichs aufgerufen werden.
In meiner gespeicherten Prozedur führe ich eine Protokollierung in einigen Auditing-Tabellen durch. Ich füge eine Zeile in die Prüfungstabelle ein und fülle sie dann später in der Transaktion durch eine Aktualisierung mit weiteren Informationen auf.
Ich stelle fest, dass, wenn mehrere Personen gleichzeitig das Gleiche versuchen, 1 oder 2 von ihnen zu Opfern von Transaktionsblockaden werden. Im Moment nehme ich an, dass eine Art von Sperre auftritt, wenn ich in die Prüfungstabellen einfüge.
Ich möchte die Einfügungen und Aktualisierungen in den Prüfungstabellen außerhalb der Transaktion ausführen, die ich gerade ausführe, so dass die Prüfung trotzdem stattfindet, auch wenn die Transaktion zurückgesetzt wird. Ich hatte gehofft, dass dadurch keine Sperren mehr auftreten, so dass mehr als eine Person das Verfahren gleichzeitig ausführen kann.
Kann mir jemand helfen, dies in T-SQL zu tun?
Danke! Rich
Update - Dank Joshs Vorschlag, den SQL Profiler zu verwenden, um die Quelle des Deadlocks ausfindig zu machen, habe ich inzwischen herausgefunden, dass das Auditing nichts mit dem Deadlock der Transaktion zu tun hatte.