1.
user1715233
26.01.24 02:08
Сейчас в теме
Коллеги, подскажите по блокировкам...
Платформа 8.3.23.1865
Конфигурация: типовой ЗУП 3.1.28.65 => Управляемый режим блокировок
Режим совместимости Версия 8.3.21, расширений нет.
СУБД MS SQL Enterprise Edition (64-bit) 16.0.1000.6 RTM
10-15 пользователей
Если поставить точку останова в начале события "ПриЗаписи" и записать любой документ любого типа, на уровне СУБД накладывается X блокировка с гранулярностью ТАБЛИЦА. Т.е. при записи любого документа блокируется ВСЯ таблица и никакие другие документы не могут быть записаны до окончания текущей транзакции.
Соответственно, пользователи ловят тормоза и таймауты вида:
"Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Driver 19 for SQL Server: Lock request time out period exceeded.
HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=38, Severity=10, native=1222, line=1"
Конфликт блокировок воспроизводится до записи движений, блокировка накладывается именно в событии "ПриЗаписи". В т.ч. при записи непроведенных документов.
Попробовал воспроизвести на нетиповой конфигурации. Там при такой последовательности действий ставится IX блокировка с гранулярностью ТАБЛИЦА, которая никак не мешает работе пользователей.
Параметры БД на уровне СУБД одинаковые.
allow snapshot isolation = False
is read committed snapshot on = True
Куда еще дальше можно посмотреть?