Просмотр размера таблиц и количества записей в таблицах

16.01.24

База данных - Статистика базы данных

Простой отчет на СКД для просмотра размера таблиц и количества записей в основных таблицах базы данных.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Отчет размера таблиц:
.erf 9,19Kb ver:1.1
1209 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Отчет получает размеры таблиц с помощью метода глобального контекста ПолучитьРазмерДанныхБазыДанных(). В документации сказано, что с помощью данного метода могут быть получены все данные, которые доступны пользователю для чтения, метод не учитывает размер истории данных и служебных таблиц платформы (индексы и т.д.). В справке так же сказано, что метод не учитывает размер расширений конфигурации, не совсем понятно что имеется ввиду под расширениями конфигураций, т.к. проверка на платформе 8.3.20.1710 показала, что метод успешно возвращает размеры всех таблиц, всех подключенных расширений. Возможно, в первых версиях, этот метод действительно не мог получить размеры таблиц расширений, а в справке так и осталось это примечание, не смотря на то, что метод нормально работает с таблицами расширений. Недостаток метода в том, что он работает довольно медленно и нельзя получить размер служебных таблиц. Но есть и большой плюс – метод работает не зависимо от используемой СУБД, в том числе и с файловыми базами. Данный метод доступен только начиная с платформы версии 8.3.15.1489. Если платформа ниже, то отчет вернет только количество записей в таблице. Несмотря на то, что получить можно размер только основных таблиц, этого вполне достаточно, чтобы проанализировать и найти какая таблица «распухла». 

Подобные разработки уже есть на Infostart, но они либо не на СКД, либо имеют др. недостатки. Данный же отчет выполнен на СКД, что позволяет «вертеть» данные как угодно, на свое усмотрение. Так же данный отчет позволяет выбрать только нужные менеджеры объектов для анализа, что может существенно сэкономить время, и изначально имеет 3 готовых варианта: 

  1. Основной – с группировкой по менеджерам объектов и сортировкой по размеру таблиц по убыванию, что бы сразу было видно самые большие таблицы в каждом менеджере объектов. 
  2. Краткий – просмотр общего размера каждого менеджера объектов с диаграммой;
  3. Линейный – просмотр всех таблиц одним списком, отсортированных по размеру, на случай если нужно сразу просмотреть топ самых больших таблиц без группировки по менеджерам;

Колонки размера можно настроить в разных единицах измерения - байтах, Кб, Мб, Гб и авто единица измерения (отчет сам поймет какую лучше показать в зависимости от размера). Отчет не имеет формы, так что нормально будет отображаться как в обычном приложении, так в управляемом. Но при просмотре отчета в обычном приложении механизмы платформы не позволяют переключать вариант отчета интерактивно, так что можете выбрать нужный вариант в конфигураторе или сделать свой вариант отчета или свой механизм интерактивного переключения вариантов. В управляемых форма проблем с настройками СКД никаких нет, особенно если у вас конфигурация на базе БСП.

Тестировалось на платформах 8.3.17.1549 и 8.3.20.1674, на файловых и серверных базах, самописных конфигурациях и ЗУП 3.1. Работать отчет должен на любой конфигурации и платформах 8.3, но на платформах ниже 8.3.15.1489 особого интереса не представляет.

 
 Обновление 16/01/2024. Версия 1.1

Добавлена возможность формировать отчет под пользователями без полных прав, т.е. если у текущего пользователя нет права на чтение какой-либо таблицы, то эта таблица будет пропущена и в отчет не попадет. Таким образом, появилась возможность формировать отчет под любым пользователем без выпадения исключительной ситуации в случае отсутствия прав на чтение таблицы, но тем не менее для получения максимально полной информации отчет нужно формировать под пользователями у которых есть право на чтение для всех таблиц. Кроме того получение количества записей таблиц сделано с учетом RLS, так что это тоже следует учесть.

Внимание! Выполнение может занять длительное время, особенно при большом объеме данных. Для полноты информации, отчет следует запускать под пользователем у которого есть права на чтение всех таблиц. Всем успехов!

Проверено на следующих конфигурациях и релизах:

  • Зарплата и управление персоналом, редакция 3.1, релизы 3.1.14.208

Вступайте в нашу телеграмм-группу Инфостарт

ПолучитьРазмерДанныхБазыДанных размер БД СКД отчет

См. также

Статистика базы данных Разработчик 1С:Предприятие 8 Россия Абонемент ($m)

Внешняя обработка для комплексной диагностики информационной базы 1С без прямого подключения к SQL Server или другой СУБД. Позволяет определить, какие объекты 1С занимают основной объём базы, сколько записей содержат, какова средняя интенсивность накопления данных за последние 24 месяца, сколько КБ приходится на одну запись, а также увидеть связанные таблицы хранения и структуру индексов. Расчёт выполняется пакетно с отображением прогресса и возможностью остановки. В результате формируется единая таблица по объектам метаданных с итоговыми показателями и возможностью выгрузки результатов в Excel. Подходит разработчикам 1С, администраторам и специалистам, которым необходимо быстро понять структуру и точки роста большой информационной базы.

4 стартмани

26.10.2026    373    0    VVLab    2    

3

Инструменты администратора БД Статистика базы данных Системный администратор 1С 8.3 Абонемент ($m)

База растёт, диски кончаются, бэкап перестал влезать в ночь — а на вопрос «что именно занимает место?» никто не может ответить. Конфигуратор молчит: самые тяжёлые таблицы часто вообще не видны в дереве метаданных. Обработка строит полную карту объёмов базы за несколько минут: все объекты метаданных с табличными частями, имена таблиц СУБД, служебные таблицы платформы отдельным списком и готовый SQL-скрипт точных размеров для MS SQL и PostgreSQL. К СУБД не обращается — только платформенные средства, только чтение.

10 стартмани

03.08.2026    2464    31    nedomolkov.ivan    8    

4

Статистика базы данных Разработчик 1С 8.3 Абонемент ($m)

Внешняя обработка для анализа фактического использования объектов метаданных конфигурации 1С. Позволяет быстро узнать, сколько создано объектов каждого вида метаданных среди справочников и документов. Какие из них активно используются, какие реквизиты заполняются, а какие остаются пустыми.

1 стартмани

27.04.2026    1829    13    archi517    0    

7

Статистика базы данных Разработчик Пользователь 1С 8.3 Абонемент ($m)

По указанному периоду показывает, какие виды документов введены в информационную базу, и также количество введенных документов.

1 стартмани

03.03.2026    1318    8    burgerkirg    0    

5

Статистика базы данных Системный администратор Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Библиотека стандартных подсистем Абонемент ($m)

Расчет размера таблиц базы данных по метаданным. Будет полезна для выбора стратегии уменьшения размера базы (свертка, переход на новую, выгрузка на тома). Иногда некоторые таблицы могут иметь необоснованно огромный размер.

3 стартмани

27.10.2025    3566    112    gebungen    0    

4

Статистика базы данных 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Небольшая подсистема для конфигураций на управляемых формах, использующих БСП, которая поможет провести анализ, какие из внешних обработок (отчетов, печатных форм, заполнений объектов) используются активно, а какие утратили актуальность.

3 стартмани

12.09.2025    3557    27    onezero    4    

17
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. МимохожийОднако 142 20.02.22 10:15 Сейчас в теме
Это Базопузометр?
4. frkbvfnjh 825 21.02.22 06:10 Сейчас в теме
2. Yashazz 4931 20.02.22 17:12 Сейчас в теме
Советую автору тщательнее поискать на ИС, потому что подобные разработки были во множестве, в т.ч. и на СКД. Ибо сие - очередной велосипед). Ну и насчёт единиц измерения - гораздо полезнее бывает знать в количествах записей, чем в байтах.
Sakuraso; t278; +2 – Ответить
5. frkbvfnjh 825 21.02.22 06:21 Сейчас в теме
(2) Штош, предлагаю Вам выбрать лисапет на свой вкус. И хорошо бы ссылки оставлять на лисапеты в виде пруфов для сообщества, что б знали где смотреть, тем самым поможете старым публикациям, вдохнете в них новую жизнь!
letzteKraft; user742407; OLDMVN; myip00@bk.ru; teflon; jirtrest; adva; Ingraf; BarsukM; Igor_Ryaboff; rostovtseff; alei1180; AndrewVVS; parshin; ixijixi; collider; pav249683; Kopitsa.k; pyrkin_vanya; apic; +20 – Ответить
13. sapervodichka 7634 23.02.22 22:10 Сейчас в теме
(5) Даёшь базопузомер! Вот мой с опцией сравнения двух баз между собой https://infostart.ru/public/1093355/
Aleksey3A; +1 – Ответить
6. apic 16 21.02.22 06:24 Сейчас в теме
(2) Как говориться, сила - в разнообразии...
Kopitsa.k; +1 – Ответить
7. kser87 2485 21.02.22 14:15 Сейчас в теме
(2) "конкуренция" - волшебное слово, которое двигает процесс. А не советы в тот момент, когда их никто не просит
Agrozentr; Aleksey3A; myip00@bk.ru; Ingraf; BarsukM; rostovtseff; KirillZ44; ixijixi; Kopitsa.k; apic; frkbvfnjh; +11 – Ответить
3. RustIG 1990 20.02.22 17:14 Сейчас в теме
интересный подход
8. mephistofel 17 22.02.22 12:23 Сейчас в теме
Автор, спасибо за отчет! Было интересно посмотреть на нашу базу с такой точки зрения.
Вопрос. Есть ли глубокий смысл в использовании метода ПолучитьРазмерДанныхБазыДанных через Вычислить? Не первый раз вижу такой прием. Не понимаю в чем его смысл.
Прикрепленные файлы:
frkbvfnjh; +1 – Ответить
9. frkbvfnjh 825 22.02.22 12:46 Сейчас в теме
(8) Да, смысл в том, что бы отчет не "падал", на платформах которые данный метод не поддерживают. Не нравится мне использовать в коде Вычислить и Выполнить, но иногда приходится.
mephistofel; +1 – Ответить
10. frkbvfnjh 825 22.02.22 12:52 Сейчас в теме
(8) Попробуйте раскоментить верхнюю строчку и открыть отчет на платформе ниже 8.3.15 и посмотрите на эффект. В конфигураторе будут ошибки при синтаксическом контроле и в режиме предприятия отчет не должен открыться, а так хотя бы количество записей посмотреть можно будет.
mephistofel; +1 – Ответить
11. Dach 440 22.02.22 15:35 Сейчас в теме
А какой смысл в использовании озвученного метода в отчете, если он действительно не показывает размер индексов и т.д.? Часто ведь именно индексы таблицы и весят больше всего
12. mephistofel 17 22.02.22 16:37 Сейчас в теме
(11) я вижу смысл. Если регистр весит 100 гигов и в нём десяток тысяч записей, то это повод для оптимизации.
Прикрепленные файлы:
frkbvfnjh; +1 – Ответить
15. SnubbyAston 52 25.02.22 16:17 Сейчас в теме
(11) А еще смысл в том, что он должен работать для любой базы: файловой, PostgreSQL, MS SQL... И без указания логинов/паролей от скюля, которых может и не быть.
stgy65; AndrewVVS; apic; frkbvfnjh; +4 – Ответить
16. Dach 440 25.02.22 17:04 Сейчас в теме
(15) никакие логины-пароли не нужны, если используется доменная аутентификация на стороне СУБД

Проще через ADO выполнить прямой запрос (благо никаких особых прав не надо), пример уже привели в (14)

Так что справедливо только для файловой, но и то - для файловых уже давным-давно есть замечательный инструмент Tool1CD
14. kuzyara 2276 25.02.22 13:21 Сейчас в теме
аналогичный запрос для MSSQL, выполняется менее 1 секунды
select  t.name as TableName, Min(t.create_date) as CreateDate, SUM(p.rows) as Rows, SUM(u.total_pages) * 8 / 1024 as SizeMB 
fr om sys.tables as t
inner join sys.partitions as p on t.object_id = p.object_id
inner join sys.allocation_units as u on p.partition_id = u.container_id
inner join sys.data_spaces as ds on u.data_space_id = ds.data_space_id
group by t.name, ds.name
order by SizeMB desc
Прикрепленные файлы:
VyacheslavShilov; Stim087; 1Pawel; zabaluev; BarsukM; +5 – Ответить
17. sergkom 3 22.04.22 10:55 Сейчас в теме
Странно как-то. По отчету все объекты весят 5 703,17 МБ

А архив весит 14Гб.
В SQL видно, что база 31Гб

Почему такая разница может быть?
Прикрепленные файлы:
18. frkbvfnjh 825 22.04.22 14:27 Сейчас в теме
(17) Потому что данный метод получения размера таблиц не может получать размер служебных таблиц (например размеры индексов), об этом сказано в публикации. Будем надеяться, что разработчики платформы будут расширять возможности метода, такую просьбу я уже написал им в группу Телеграмм Platform Suggester.
EvgeniyOlxovskiy; +1 – Ответить
22. yuraos 1008 16.01.24 08:27 Сейчас в теме
(18) Плюс этот метод вроде не учитывает расширения конфигурации.

Если это действительно так - то как быть,
если половина базы в расширении перепилена
19. Eaysmax 1 11.04.23 23:04 Сейчас в теме
fr om sys.tables as t(14)

Ошибочка вроде у Вас. From?
20. maksa2005 381 02.01.24 12:45 Сейчас в теме
размер не показал. виной что постгрес?
Прикрепленные файлы:
21. maksa2005 381 02.01.24 14:04 Сейчас в теме
а у меня оказывается 8.3.9. с 8.3.15 можно посмотреть программно размер бд
23. yuraos 1008 16.01.24 09:49 Сейчас в теме
Так расширения конфигураций учитываются при подсчете размера таблиц?

Встроенная функция ПолучитьРазмерДанныхБазыДанных()
вроде бы их не учитывает судя по мануалу.
- https://infostart.ru/1c/tools/1608982/

А то у меня база,
половина функционала которой в расширении перепилена.
24. frkbvfnjh 825 16.01.24 10:31 Сейчас в теме
(23) Проверил на 8.3.20.1710 - таблицы расширений учитываются. Видимо в справке имеется ввиду размер самих расширений, хотя это странно, но метод не вызвал никаких исключений и получил размеры всех таблиц всех расширений. Думаю скорректирую публикацию.
25. yuraos 1008 16.01.24 13:26 Сейчас в теме
Да, по крайней мере функция ПолучитьРазмерДанныхБазыДанных()
учитывает как-то добавленные в расширении реквизиты шапки.

что имеется ввиду в мануале - неясно (может как появился метод не учитывалось).


PS
Отсутствие размера индексов и служебных таблиц это конечно плохо.
- Они могут занимать очень прилично много места в базе.

Также бывает полезно знать не только размер данных, а также "использованное" место
и число строк в таблицах объекта в базе.


PSPS
кстати кто знает?
таблицы регистрации данных - это из тех "служебных таблиц" ???
26. frkbvfnjh 825 16.01.24 14:09 Сейчас в теме
(25) Да, согласен, что не совсем понятно что имеется ввиду под расширениями конфигураций, возможно в первых версиях, этот метод действительно не мог получить размеры таблиц расширений, а в справке так и осталось это примечание. Я скорректировал текст публикации, указав этот нюанс. Спасибо, что подняли этот вопрос.
27. One 19.03.25 20:23 Сейчас в теме
мас = Новый Массив;
мас.Добавить("Справочник.НоменклатураПрисоединенныеФайлы");
Размер = ПолучитьРазмерДанныхБазыДанных(Новый Массив,мас);


Выдаёт размер 0, хотя в справочнике порядка 50 элементов. Что не так?

У кого есть полная справка по методу ПолучитьРазмерДанныхБазыДанных?
Для отправки сообщения требуется регистрация/авторизация