Найти тему
Anatoly Niculin

Большая база 1С

Оглавление

Кейс: Типовая база Комплексная автоматизация 2.4, доработки только через расширения и внешние обработки, стало очень медленно делаться ночное резервное копирование, СУБД - MS SQL.

Число активных пользователей 3-6 человек, учет ведется около года, общее число создаваемых документов в день 100-300 штук, НСИ почти неизменна, а размер 1С базы довольной большой – 267 Гб.

Первое подозрение на множество картинок в базе, они загружены для обмена с интернет-магазином и маркетплейсами. Но они хранятся в отдельных томах на диске и не влияют на большой размер базы 1С.

Как посмотреть какие таблицы в базе 1С занимают больше всего места на диске

В оснастке управления Management Studio правой кнопкой клик на базе -> Отчеты -> Стандартный отчет -> Использование дисковой памяти таблицами.
Сортируем по колонке Данные. На скрине видно, что одна из таблиц базы 1С очень большая, относительно остальных - около 255Гб, по имени InfoRg понятно что это Регистр сведений, суффикс X говорит что этот регистр в расширении.

-2

Как определить какой таблице в MS SQL соответствует таблица 1С

Запускаем обработку с кодом, получаем на выходе таблицу 1С (регистр, документ, справочник и т.п.) и сводим по названию в данными в оснастке MS SQL

-3

Оказалось что база 1С разрослась и стала такой большой из-за логов обмена с маркетплейсами, обмен с ними раз в несколько минут, POST запрос на обновление остатков содержит порядка 20 тыс строк с остатками номенклатуры и характеристиками. Запрос на получение сборочных заданий приходит строкой длиной в среднем 400-600 тысяч символов, в ответе еще и стикеры-картинки приходят в base64, и все это удовольствие сохраняется в бд.

-4

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