Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Причины избыточных блокировок в 1С

Умение найти и «обезвредить» причину избыточных блокировок — одна из самых интересных и сложных задач, стоящих перед экспертом или программистом 1С 8.3.

Ниже речь пойдет о причинах возникновения избыточных блокировок и методах решения этой проблемы.

Анализ избыточных блокировок в 1С ЦУП

Среди наиболее часто встречаемых причин избыточных блокировок можно выделить следующие:

Рассмотрим каждые из них подробнее.

Получите 267 видеоуроков по 1С бесплатно:

Неоптимальная работа запросов

Подробнее Вы можете прочесть в статье причины неоптимальной работы запросов.

Среди основных причин:

  • использование подзапросов в условии соединения;
  • фильтрация виртуальных таблиц без использования параметров;
  • соединения с подзапросами;
  • соединения с виртуальными таблицами;
  • несоответствие индексов и условий запроса;
  • использование логического ИЛИ в условиях;
  • получение данных через точку от полей составного типа.

Чтение остатков в начале транзакции

Контроль остатков очень распространенная операции. При этом, если есть возможность, необходимо размещать запрос, считывающий актуальные остатки, как можно ближе к концу транзакции.

Причина в том, что чтение остатков запросом блокирует записи до конца транзакции — следовательно, устанавливается блокировка до конца транзакции. Чем ближе к концу установлено чтение, тем выше параллельность системы.

Избыточные блокировки СУБД

Недопустимо использование некоторых СУБД для серьезных многопользовательских решений. Это связано с тем, что для работы эти СУБД используют очень высокий уровень изоляции транзакций.

Использование следующих СУБД нежелательно для многопользовательского режима:

  • PostgreSQL (режим автоматических блокировок);
  • Oracle (режим автоматических блокировок);
  • файловый режим 1С.

Неправильное использование объектов конфигурации

Рассмотрим подробнее каждый объект метаданных:

Константы

Не рекомендуется часто изменять данные констант, т.к. при работе с одной константой блокируется вся таблица констант (с 1С 8.2.15 константы разнесены по отдельным таблицам).

Последовательности

Не рекомендуется изменять границу последовательностей при проведении документов.

Регистры бухгалтерии и регистры накопления

Рекомендации идентичны: при оперативной работе рекомендуется использовать режим разделения итогов — он позволяет существенно распараллелить работу пользователей. Также рекомендуется как можно позже производить чтение остатков в транзакции.

Планы обмена

Т.к. планы обмена блокируют таблицы изменения всех объектов, включенных в состав плана обмена, рекомендуется производить обмены либо в нерабочее время, либо маленькими порциями, чтобы блокировки были небольшими по времени.

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

СПРОСИТЕ в комментариях!

Добавить комментарий: