Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 блокировка издателя при запросе на подписчике  [new]
valv
Member

Откуда:
Сообщений: 133
есть два сервера, на одном главная база данных, на втором её реплика. на реплике делаем тяжелый запрос секунд на 10, select с хинтами (nolock) на все таблицы. и этот вот запрос блокирует таблицу, находящуюся в главной базе данных. блокировка на вставку - insert в таблице на издателе ждёт, пока не завершиться запрос на подписчике.

это случилось в продакшен системе.
немедленно сделали временное решение: вместо запроса к БД на реплике делаем snapshot реплики, из него уже делаем тяжелый запрос, snapshot уничтожаем. временное решение работает, но, к сожалению, не успели собрать никакой информации о проблеме. в тестовой версии не удалось повторить.

вопрос - почему, как (nolock) запрос на подписчике блокирует таблицу на издателе?
какие могут быть решения, кроме snapshot? в какую сторону копать?
спасибо.

MS SQL 2008R2. Publication type - transactional.
29 июл 13, 15:56    [14632850]     Ответить | Цитировать Сообщить модератору
 Re: блокировка издателя при запросе на подписчике  [new]
Crimean
Member

Откуда:
Сообщений: 13147
фантастика какая-то
29 июл 13, 16:24    [14633051]     Ответить | Цитировать Сообщить модератору
 Re: блокировка издателя при запросе на подписчике  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
valv
select с хинтами (nolock) на все таблицы. и этот вот запрос блокирует таблицу, находящуюся в главной базе данных. блокировка на вставку - insert в таблице на издателе ждёт, пока не завершиться запрос на подписчике.
Такое возможно при модификации данных, если подписка обновляемая с непосредственным обновлением издателя. Но уж никак не при чтении данных.
29 июл 13, 17:57    [14633645]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить