При создании нового подчиненного узла распределенной информационной базы (РИБ) в конфигурациях 1С (например, «Розница 2.2» или «Бухгалтерия предприятия 3.0») можно столкнуться с проблемой катастрофического падения производительности. Вход в систему может занимать от 5 до 10 минут, а открытие любых форм справочников и документов длится десятками секунд, даже если размер периферийной базы относительно небольшой (менее 1 ГБ).
Разберем основные причины такого поведения платформы и проанализируем проверенные способы устранения этой проблемы.
Проблема, как правило, связана не с технической мощностью сервера или дисковой подсистемы, а со спецификой инициализации структуры данных при создании начального образа:
Config или сбой индексов СУБД: При выгрузке начального образа периферийного узла конфигурационные таблицы могут сформироваться с поврежденными или отсутствующими индексами. В MS SQL Server проверить состояние индексов системных таблиц можно командой:
EXEC sp_helpindex 'Config'
Если индекс поврежден, чтение метаданных платформой 1С при каждом вызове интерфейсных форм приводит к постоянному сканированию всей таблицы.на лету.Наиболее эффективным и проверенным на практике решением является отвязка периферийной базы от центрального узла с последующей полной перезагрузкой файла конфигурации (.cf).
Рассмотрим пошагово порядок действий:
// Выполняется в периферийной базе для отвязки от центрального узла
УстановитьГлавныйУзел(Неопределено);
.cf центральной базы через меню Конфигурация -> Загрузить конфигурацию из файла... и обновите конфигурацию базы данных (нажав F7).
// Указываем ссылку на элемент плана обмена, соответствующий центральному узлу
УзелЦентр = ПланыОбмена.ПоМестуНахождения.НайтиПоКоду("ЦБ");
УстановитьГлавныйУзел(УзелЦентр);
После выполнения этой процедуры и переиндексации таблицы метаданных нормальная скорость работы базы, как правило, полностью восстанавливается.
Если после перезагрузки конфигурации задержки при открытии форм сохраняются, необходимо форсировать выполнение процедур обновления информационных баз БСП. Для этого запустите базу в режиме «Предприятие» с дополнительным параметром командной строки:
/C ЗапуститьОбновлениеИнформационнойБазы
Данный параметр заставляет платформу выполнить все отложенные обработчики обновления в монопольном режиме, пересчитать кэш прав и обновить системные регистры сведений (такие как РегистрыСведений.ЗначенияГруппДоступа и РегистрыСведений.ТаблицыГруппДоступа).
Разберем дополнительные параметры, которые помогут снизить нагрузку на периферийный узел при первом запуске: