У меня есть хранимая процедура, написанная на SQL Server, которая имеет некоторую логику, полученную путем объединения различных таблиц в базе данных, и, наконец, конечный результат вставляется в таблицу.
Эта хранимая процедура вызывается из внешнего интерфейсаиспользование API-интерфейса приложения .Net различными пользователями.
Если какой-либо оператор выполняет только один пользователь, выполнение операции занимает около 20 секунд.
Если операция выполняется несколькими пользователями, то она зависает и занимает почти более 20 минут.
Я попытался понять, что блокировка получает бэкэнд, и попытался установить подсказки WITH(NOLOCK)
и некоторые другие опции, но не в состоянии решить эту проблему.
Как эффективно обрабатывать блокировки при одновременном выполнении?