Доброго времени суток. Столкнулся с такой проблемой при записи/проведении Табеля база уходит в тормоз, через некоторое время вываливается в Конфликт блокировок. Превышено максимальное время предоставления блокировки. В конфигурации стоит 180 сек, конфигурация, табель, регистр сведений ГрафикиРаботПоВидамВремени - режим блокировки - Управляемый. Тормозит код в документе:
НаборЗаписей = РегистрыСведений.ГрафикиРаботыПоВидамВремени.СоздатьНаборЗаписей();
Пока ВыборкаЗапроса.Следующий() Цикл
Если ВыборкаЗапроса.УдалятьЗаписиЗаПериод Тогда
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
Иначе
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Если (Запись.Документ = Ссылка) Тогда
Запись.ОсновноеЗначениеПолное = 0;
Запись.ДополнительноеЗначениеПолное = 0;
Запись.Документ = Документы.ТабельУчетаРабочегоВремениОрганизации.ПустаяСсылка();
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
КонецЕсли;
КонецЦикла;
Очистка регистра дает результат в скорости для одного пользователя в бд, когда заходят 5-10 табельщиков, проблема снова проявляется. Подскажите куда смотреть? В сторону кода работы с регистром, платформы или что то другое? На этом же постгре крутится много других баз, нигде проблемы нет, так что думаю субд не при чем.
Платформа 8.3.10.2252
Конфигурация ЗУП 2.1.41.1
PostgreSQL 9.6.2
Заранее спасибо.
>>5-10 табельщиков, проблема снова проявляется
понятное дело, все скопом пыьаются писать в регистр, а блокировки автоматические скорее всего. Делай управляемые и будет тебе счастье
(1) не лишнее, в наборе записей осталось, то что было в предыдущей итерации
(0) ВыборкаЗапроса - объём выборки какой?
По логике: идёшь по работникам и устанавливаешь каждому график - тогда добавь НаборЗаписей.Отбор.Сотрудник, что бы разные табельщики не путались между собой (По тех процессу - одновременно разные табельщики будут работать с одним сотрудником? всё-же вероятность меньше).
Как вариант: используй не НаборЗаписей, а МенеджерЗаписи, т.е. изменяй не пачкой, а каждую запись - проиграешь по времени, но блокировка будет минимальна
(4) Это типовой код конфы). До него идут два запроса с выборкой в 150к записей где то
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой