Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So geben Sie Hinweise zum Aktualisieren der Sperre, ohne den Code für gespeicherte Prozeduren zu duplizieren

Wenn die Aufrufe von SP1, gefolgt von SP2, atomar sind, sollten sie in T-SQL kombiniert werden. Oder die c#-Transaktion verlieren. Mit Roundtrips verlängern Sie die Transaktion unnötig.

Warum haben Sie UPDLOCK auf SP1UPDLOCK, aber nicht auf SP1? Ich kann nicht sehen, warum. Wenn das Problem Sperrhinweise sind, verwenden Sie sie nicht. Wenn etwas serialisierbar ist (warum?), machen Sie es wiederum zu einem einzelnen atomaren Aufruf

Beachten Sie, dass der Standard sowieso READ COMMITTED ist

Meinst du schließlich "Semaphore" nicht sperren? Verwenden von sp_getapplock steuert den Fluss durch den Code, ohne Sperren für die Daten zu verwenden