Анализ базы данных 1С: размер объектов, количество записей, рост базы и структура хранения
База данных - Статистика базы данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Анализ базы данных 1С
Когда информационная база начинает заметно расти, перед разработчиком или администратором обычно возникает простой вопрос: какие именно объекты занимают место и за счёт чего растёт база?
Стандартными средствами 1С получить такую картину в одном месте неудобно. Размер данных, количество записей, динамику наполнения, структуру физических таблиц и индексов приходится анализировать разными способами.
Внешняя обработка «Анализ базы данных 1С» собирает основные показатели по объектам информационной базы в единую таблицу и позволяет быстро определить наиболее объёмные и активно растущие объекты.
Обработка работает средствами платформы 1С и не требует прямого подключения пользователя к MS SQL Server, PostgreSQL или другой СУБД.
Что позволяет определить обработка
Для объектов метаданных рассчитываются и выводятся:
-
размер данных объекта;
-
количество записей;
-
среднее количество записей в месяц за последние 24 месяца;
-
средний объём данных на одну запись;
-
количество связанных физических таблиц хранения;
-
имена таблиц хранения СУБД;
-
количество индексов;
-
максимальное количество полей в индексе;
-
наличие таблиц итогов;
-
наличие таблиц оборотов.
В результате можно быстро увидеть не только самые большие объекты, но и понять, почему объект стал большим: за счёт количества записей, интенсивного накопления данных или относительно большого объёма одной записи.
Размер объектов
Размер рассчитывается штатным механизмом платформы 1С.
Это позволяет сравнить объекты между собой и определить, какие справочники, документы, регистры и другие объекты формируют основной объём данных.
После завершения расчёта результаты сортируются по размеру, поэтому наиболее объёмные объекты сразу оказываются в верхней части списка.
Размер следует рассматривать именно как размер данных объекта, рассчитанный платформой 1С, а не как полный физический размер SQL-таблиц вместе со всеми индексами и внутренними структурами СУБД.
Для определения физического размера файлов базы, отдельных индексов, страниц и других параметров необходим уже непосредственный анализ СУБД.
Количество записей и динамика за 24 месяца
Для каждого поддерживаемого объекта обработка определяет общее количество записей.
Дополнительно рассчитывается показатель «Записей/мес. за 24 мес.» — среднее количество записей, появлявшихся в объекте за месяц в течение последних двух лет.
Для расчёта используются штатные временные поля объектов:
-
документы —
Дата; -
регистры накопления —
Период; -
регистры бухгалтерии —
Период; -
периодические регистры сведений —
Период; -
регистры расчёта —
ПериодРегистрации.
Если у объекта нет штатного временного поля, позволяющего достоверно определить период появления записи, значение выводится как «Н/Д».
Например, для обычного справочника обработка не пытается искусственно определить дату создания элемента, если такая информация не хранится в самом объекте.
Этот показатель особенно полезен при поиске регистров и документов, которые становятся источником постоянного роста информационной базы.
КБ на запись
На основании размера объекта и количества записей рассчитывается дополнительный аналитический показатель «КБ/запись».
Он позволяет сравнить два объекта одинакового размера, но с принципиально разной структурой данных.
Например, один объект может занимать 5 ГБ из-за десятков миллионов коротких записей, а другой — из-за относительно небольшого количества тяжёлых записей.
Для объектов, содержащих табличные части и связанные структуры хранения, показатель нужно воспринимать как аналитический коэффициент объёма объекта, а не как точный физический размер одной строки таблицы СУБД.
Структура хранения и индексы
Кроме статистики по данным обработка получает информацию о структуре хранения средствами функции платформы.
Для объекта можно увидеть:
-
сколько физических таблиц хранения с ним связано;
-
их системные имена;
-
назначение таблиц;
-
количество индексов;
-
максимальное количество полей в одном индексе;
-
наличие таблиц итогов;
-
наличие таблиц оборотов.
Это удобно, когда после первичного анализа необходимо перейти к более глубокому исследованию конкретного регистра или документа средствами СУБД, технологического журнала или других инструментов.
Пакетный расчёт
Анализ большой информационной базы может быть длительной операцией.
Поэтому расчёт выполняется пакетами, а не одним длинным серверным вызовом.
Пользователь самостоятельно задаёт количество объектов в одном пакете. После выполнения очередного пакета форма обновляется и показывает:
-
сколько объектов уже обработано;
-
общее количество объектов;
-
процент выполнения;
-
прошедшее время;
-
последний обработанный объект.
Расчёт можно остановить между пакетами.
Для первой проверки крупной рабочей базы рекомендуется использовать размер пакета 3–5 объектов.
Если необходимо проверить только отдельную подсистему или объект, можно использовать фильтр по имени и не запускать полный анализ всей конфигурации.
Например:
Документ.Реализация
РегистрНакопления
Номенклатура
Настройка состава анализа
Перед запуском пользователь может включить или отключить отдельные ресурсоёмкие операции:
-
Считать количество записей;
-
Среднее за 24 месяца;
-
Анализировать индексы.
Таким образом, обработку можно использовать как для быстрого просмотра структуры базы, так и для более подробной диагностики.
Итоги и выгрузка в Excel
Под основной таблицей автоматически формируются итоговые показатели.
Рассчитываются:
-
суммарный размер объектов;
-
общее количество записей;
-
суммарное среднее количество записей в месяц;
-
средний объём КБ на запись;
-
количество таблиц хранения;
-
количество индексов;
-
максимальное количество полей одного индекса;
-
количество объектов с таблицами итогов;
-
количество объектов с таблицами оборотов.
Результат можно сохранить в XLSX и продолжить анализ в Excel: выполнить дополнительную сортировку, фильтрацию, сравнить несколько баз или использовать таблицу при подготовке технического отчёта.
Где обработка может быть полезна
База быстро растёт
Можно определить объекты с наибольшим размером и одновременно посмотреть среднюю интенсивность накопления новых записей.
Планируется архивирование или свёртка
Обработка позволяет предварительно определить, какие данные потенциально дадут наибольший эффект от сокращения истории.
Подготовка к обновлению или переносу базы
Можно получить общий технический профиль наиболее крупных объектов до начала работ.
Поиск причины большого размера БД
Вместо последовательного просмотра сотен объектов разработчик получает одну таблицу, в которой видны основные кандидаты для дальнейшего анализа.
Диагностика производительности
Большой размер объекта сам по себе не означает проблему производительности, однако результаты обработки помогают определить объекты, которые имеет смысл проверять следующими: технологическим журналом, замерами запросов и инструментами СУБД.
Безопасность
Обработка предназначена только для анализа.
Она не изменяет прикладные данные, не создаёт и не проводит документы, не удаляет записи и не выполняет реструктуризацию информационной базы.
Для получения структуры и размеров используются механизмы платформы 1С.
Прямое подключение обработки к системным таблицам СУБД не выполняется.
Полнота доступной информации зависит от прав пользователя, под которым запущена обработка. Для технической диагностики рекомендуется использовать пользователя с достаточными правами доступа.
Порядок работы
-
Открыть внешнюю обработку.
-
При необходимости указать фильтр по объектам.
-
Указать размер пакета.
-
Выбрать необходимые параметры анализа.
-
Нажать «Сформировать и рассчитать».
-
Дождаться завершения расчёта или остановить его при необходимости.
-
Проанализировать объекты с наибольшим размером и темпом накопления данных.
-
При необходимости сохранить результат в Excel.
Требования и совместимость
Обработка разработана на управляемых формах для 1С:Предприятие 8.3.
Текущая версия разрабатывалась и тестировалась на платформе 8.3.27.1786.
Обработка не содержит жёстких ссылок на объекты конкретной прикладной конфигурации и предназначена для использования как универсальный инструмент диагностики.
Скорость выполнения зависит от размера информационной базы, количества объектов метаданных, объёма крупных регистров, текущей нагрузки на сервер и выбранного размера пакета.
Для крупных рабочих информационных баз рекомендуется выполнять первый запуск с небольшим пакетом объектов либо предварительно использовать фильтр.
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.6.2.68
- Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.209.16
Вступайте в нашу телеграмм-группу Инфостарт