Как начиналось
Запустили частично в работу очередную самописку. Ну как самописку... Это достаточно большая интеграция 1С:Документооборот и одного из операторов ЭДО. Но история не об этом.
Загрузили данные (электронные документы) с начала 2023 года, начали настраивать резервное копирование. И на этом администраторы обеспокоенно сообщили, что база теперь занимает значительный объем. Поскольку данные были загружены за год, путем нехитрого умножения на N текущего размера базы, можно представить размер базы через N лет. Но история все же не об этом.
Что получилось
Собственно, о чем история-то...
Нужно проанализировать физический размер таблиц - размер данных, индексов, общий занятый размер. Посортировать в нужном виде. Ну и чтобы понятно было, о каких метаданных идет речь.
Ранее уже такие работы три-четыре раза выполнялись.
Сначала в sql-консоли выполняется скрипт, его результаты сохраняются в xls/xlsx.
Потом каким-то образом в табличном виде выгружался результат ПолучитьСтруктуруХраненияБазыДанных(...).
Потом через ВПР(...) эти таблицы соединялись. И можно было худо-бедно посмотреть размеры.
Понятно, что тут не до красот - мы не мастера экселя.
Но зато в 1С побольше компетенций.
Задача свелась к созданию (внешнего) отчета на СКД. В нем используются два соединенных набора данных объект. В один из наборов загружаются данные из выполненного sql-скрипта. Ну а в другой загружаются данные из ПолучитьСтруктуруХраненияБазыДанных(...).
Поскольку это СКД, то получаем все плюшки СКД - группировки, сортировки, фильтры, разные варианты, диаграммы и проч.
Некоторые пояснения
Про рейтинги
При загрузке данных из таблицы размеров (которую получаем выполнением sql-скрипта), добавляется ряд полей для обозначения "рейтингов" таблицы. Например, чтобы в отчет можно было выбирать только данные о таблицах, имеющих достаточно большой рейтинг.
Рейтингов несколько:
- Место по размеру данных
- Место по использованному размеру
- Место по размеру индексов
- Место по количеству строк
И общие рейтинги:
- Место высшее
- Место низшее
Про поля %
Есть несколько полей-ресурсов, считающихся, как % от общего значения. В заголовках этих полей так и прописано - ... (% от общего).
Но есть еще поле Доля индексов (%). Оно считается, как отношение размера индексов к общему размеру (данные + индексы).
Требования и ограничения
СУБД - MSSQL. Проверялось на 2012. Возможно, будет работать и с 2008.
Платформа - любая, начиная с 8.3.3. Диктуется использованием объектов типа ОписаниеОповещения.
БСП не требуется.
Ссылки
Гит-репозиторий проекта.
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, релизы 2.1.32.6