Прежде всего, поскольку вы работаете с SQL Server, я бы порекомендовал вам ввести Performance Dashboard, который является очень удобным инструментом для определения того, какие блокировки в настоящее время устанавливаются на сервере.
Производительность Dahsboard Link
Во-вторых, проследите, как ваш SQL-сервер использует SQL Profiler (уже установлен), и убедитесь, что вы выбрали в Выбор событий пункт Блокировки> График взаимоблокировки, который покажет, что является причиной тупика.
Вы должны четко понимать, что такое тупик, чтобы начать устранение неполадок.
При любом доступе к любой таблице или строке в БД выполняется блокировка.
Позволяет вызывать SPID 51 и SPID 52 (SPID = идентификатор процесса SQL)
SPID 51 блокирует ячейку A
SPID 52 замки Cell B
если в той же транзакции SPID 51 запрашивает ячейку B, он будет ждать SPID 52, пока не освободит его.
если в той же транзакции SPID 52 запрашивает ячейку A, вы попадаете в тупик, потому что эта ситуация никогда не закончится (51 ожидает 52 и 52 - 51)
Должен сказать вам, что не легко устранить неполадки, но вам нужно копать глубже, чтобы найти разрешение