Доктор базы: Диета — за счет чего раздулась база 1С и как безопасно ее почистить
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Десять категорий «лишнего»
Обработка проходит по всем объектам метаданных, замеряет размер таблиц платформенным методом ПолучитьРазмерДанныхБазыДанных, считает записи и относит объект к одной из категорий по шаблону имени. Шаблоны и сроки хранения меняются на закладке «Правила» и сохраняются.
| Категория | Что удаляется | Риск и возврат |
|---|---|---|
| Версии объектов (БСП) включена, срок 180 дней |
Данные версий старше срока; сам список изменений остается — как в регламентном задании БСП | низкий; возврат из архива |
| История данных платформы включена, срок 180 дней |
Версии старше срока через ИсторияДанных.УдалитьВерсии | низкий; необратимо |
| Замеры производительности включена, срок 180 дней |
Записи старше срока | низкий; возврат из архива |
| Архивы и логи обменов выключена, срок 180 дней |
Записи старше срока | средний; возврат из архива |
| Очереди и кэши выключена |
Кэши целиком; очереди только показываются | средний; возврат из архива |
| Регистрация изменений в планах обмена выключена, срок 180 дней |
Регистрация для узлов без обмена дольше срока (по данным БСП) и отмеченных вручную | высокий; необратимо |
| Устаревшие объекты «Удалить*» включена |
Записи регистров; элементы справочников и документы — с контролем ссылок | низкий; возврат из архива |
| Помеченные на удаление включена |
Удаление платформой с контролем ссылок | средний; объекты из архива |
| Присоединенные файлы и хранилища только отчет |
Ничего — рекомендация перенести файлы в тома на диске | — |
| Прочие крупные таблицы только отчет |
Ничего — показываются самые большие таблицы вне категорий | — |
Строка сводки фильтрует список объектов под ней, справа — круговая диаграмма долей в размере базы. Объекты «только для отчета» выделены серым, отметить их нельзя.
Как проходит одна очистка
- Анализ. Идет порциями примерно по полторы секунды на сервере, в шапке виден ход: «Идет анализ: 47 из 2 522 — Справочник …». Кнопка на это время становится «Остановить анализ».
- Отметки. По умолчанию отмечено то, что можно чистить по включенным категориям. Любую отметку можно снять или поставить.
- Предпросмотр — обязательный шаг. Без него кнопка «Очистить» недоступна. Он пересчитывает количество по текущим срокам и показывает: сколько записей уйдет и сколько места освободится, размер порции, куда пишется архив, что необратимо. Если в базе работают другие сеансы, а в предпросмотре есть регистрация изменений или помеченные, появляется предупреждение. Любая правка правил или отметок сбрасывает предпросмотр.
- Очистка порциями. По умолчанию 10 000 записей, каждая порция регистров — отдельная транзакция с управляемой блокировкой. В шапке видно, какой объект чистится и сколько удалено. Кнопка «Остановить очистку» прерывает работу после текущей порции, отчет честно показывает, что выполнено частично, а что не начиналось.
- Архив. Включен по умолчанию: для файловой базы — папка «ДиетаАрхив» рядом с базой, для клиент-серверной каталог указывается на сервере 1С. Каждая порция — отдельный файл.
- Журнал и отчет «было/стало». Последние 100 операций; при выборе строки снизу строится отчет по объектам. Для файловой базы есть напоминание: место на диске освободится после «Тестирования и исправления → Сжатие таблиц».
- Восстановление. «Восстановить из архива…» возвращает записи регистров, данные версий и удаленные объекты (документы — без движений, их нужно перепровести). Объекты, которые остались в базе из-за ссылок, архивной копией не перезаписываются.
Проверка на демобазе УНФ 3.0
На копии демобазы УНФ 3.0.14 в анализ попало 2 522 объекта метаданных, скорость — около 12 объектов в секунду. Плановая очистка с правилами по умолчанию удалила 13 914 записей: старые замеры производительности (регистры «Замеры времени», «Замеры времени технологические», «Замеры статистики») и регистры с префиксом «(не используется)». Размер данных базы уменьшился с 536,7 до 466,4 МБ.
Логика дополнительно прогоняется на тестовой конфигурации с заранее «раздутыми» данными: 60 тысяч замеров, 20 тысяч версий объектов, архив обменов, кэши, регистры и справочники «Удалить*», помеченные объекты, узлы обмена с датами последнего обмена и история данных — 94 автоматические проверки, включая восстановление из архива и остановку посреди очистки.
Плановая очистка по расписанию
При регистрации в «Дополнительных отчетах и обработках» у обработки две команды: открыть форму и «плановая очистка (для расписания)». Второй команде назначается расписание БСП. Она работает по сохраненным правилам, но трогает только безопасное — категории с 1-й по 4-ю и регистры категории «Удалить*»; справочники, документы, помеченные и регистрацию изменений не удаляет. Итог пишется в журнал и может уйти сообщением в Telegram (токен бота и ID чата задаются на закладке «Журнал»).
Вопросы и ответы
Какие права нужны? Анализ доступен любому пользователю, очистка и восстановление — только с правом «Администрирование данных».
Нужна ли БСП? Анализ, очистка, архив и журнал работают в любой конфигурации — обработку можно открыть через «Файл → Открыть». БСП нужна для регистрации, расписания и для категорий, которые опираются на ее объекты (версии объектов, даты последнего обмена).
Почему регистрация без безопасного режима? Обработка пишет файлы архива и отправляет сообщения в Telegram — в безопасном режиме это недоступно.
Можно ли чистить при работающих пользователях? Регистры чистятся небольшими транзакциями. Для удаления объектов с контролем ссылок нужен монопольный режим; если его установить нельзя, ссылки проверяются поиском, и удаляются только объекты без ссылок. Регистрацию изменений и помеченные лучше чистить, когда в базе никого нет — предпросмотр об этом предупреждает.
Почему анализ большой базы заканчивается не сразу? В конце замеряется размер всей базы, а на нескольких гигабайтах файловой базы это занимает минуты. Форма в это время пишет, что идет замер.
Какая платформа? 8.5.1, проверено на 8.5.1.1150 и 8.5.1.1343.
Поставка
Файл «ДокторБазыДиета.epf», версия 1.0.0, открытый код.
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.140
Вступайте в нашу телеграмм-группу Инфостарт