Показать сообщение отдельно
Старый 22.12.2016, 05:59   #3  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Цитата:
Сообщение от Alexius Посмотреть сообщение
Таблички Batch* достаточно проблемные, гарантированного универсального решения, по крайней мере у меня нет. В качестве путей решения могу предложить:
1. Переиндексация. Смотреть DBCC SHOWCONTIG по каждому индексу, обычно они в безобразном состоянии, т.к. многие записи динамически создаются/удаляются.
2. Если блокируется именно вся таблица (я честно говоря сомневаюсь в этом, но чем черт не шутит) - смотрим Отключение эскалации блокировок в MSSQL 2008
3. Если происходит эскалация блокировки с записи до страницы (тоже неприятно), то можно отключить это в индексе(ах).
4. Не плохо бы посмотреть на наличие "сторонних" вмешательств в механизмы пакетных заданий в АХ
Спасибо за советы.

Цитата:
Сообщение от Alexius Посмотреть сообщение
5. А может блокировка не на табличках Batch* ?
Указанный выше запрос не выполняется до тех пор, пока не разнесутся все журналы операций. В SQL видно что процесс заблокирован именно процессом разноски журналов операций. Соответственно все остальные пакетные задания ждут окончания списания.

Может быть еще дело в том что для списания мы запускаем ОДНО пакетное задание, в котором указываем все магазины. В результате мы имеем ОДНО пакетное задание состоящие из подзаданий, равное кол-ву списываемых журналов. Попробую для каждого магазина настроить свое пакетное задание.