SQL Server: устранение блокировки с помощью одновременной записи и чтения

#sql-server

#sql-сервер

Вопрос:

У меня есть две отдельные хранимые процедуры, использующие одну и ту же таблицу в SQL Server 2016.

Один выполняет запись в таблицу, а другой — чтение из той же таблицы.

Вторая хранимая процедура ожидает или блокируется, поскольку первая хранимая процедура записывает данные в таблицу.

Есть ли какой-либо способ, которым я могу прочитать последние данные без использования (NOLOCK) ? Или ожидание — единственный вариант?

Мы используем sentry one для отслеживания блокировки

Комментарии:

1. вторая хранимая процедура — is вызывается сразу после вставки данных или с какой частотой вызывается этот секундный SP? — можете ли вы привести пример, показывающий случай?

2. Являются ли процедуры чтением / записью одних и тех же строк? Если нет, настройка индекса запроса выполняется во избежание блокировки. В противном случае рассмотрите возможность изоляции моментального снимка для чтения последних зафиксированных данных.