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

16.09.22

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

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

Скачать файлы

Наименование Файл Версия Размер
Отчет размера таблиц:
.erf 9,09Kb
342
.erf 1.0 9,09Kb 342 Скачать

Отчет получает размеры таблиц с помощью метода глобального контекста ПолучитьРазмерДанныхБазыДанных(). В документации сказано, что с помощью данного метода могут быть получены все данные, которые доступны пользователю для чтения, метод не учитывает размер истории данных, расширений конфигурации, служебных таблиц платформы (индексы и т.д.). Недостаток метода в том, что он работает довольно медленно и нельзя получить размер служебных таблиц. Но есть и большой плюс – метод работает не зависимо от используемой СУБД, в том числе и с файловыми базами. Данный метод доступен только начиная с платформы версии 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 особого интереса не представляет.

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

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

См. также

История фоновых заданий

Журнал регистрации Статистика базы данных HighLoad оптимизация Конфигурации 1cv8 Абонемент ($m)

Удобный отчет по выполнению фоновых заданий в 1С с разбивкой по разным критериям, например по срокам, в какой последовательности, выполнение дольше всех, сколько одновременно и так далее.

5 стартмани

04.09.2023    243    2    Maxiko    0    

7

Статистика по документам пользователя с версионированием по дате

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

Вывод документов, созданных или отредактированных пользователем за период, в том числе с возможностью "заглянуть" в версии документа на дату.

5 стартмани

30.06.2023    1417    2    nemec    4    

4

Расчет размера таблиц базы в Мб

Статистика базы данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка считает и выводит размер таблиц базы данных. Работает с файловыми и серверными базами.

1 стартмани

28.11.2022    2825    62    leneil    0    

7

Количество накладных. УТ 11

Оптовая торговля Статистика базы данных Платформа 1С v8.3 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Управленческий учет Абонемент ($m)

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

1 стартмани

22.11.2022    1955    0    Alexei_Siva    0    

3

Еще один вариант отчета Статистика по документам

Статистика базы данных СКД Платформа 1С v8.3 Россия Абонемент ($m)

Отчет на базе СКД с отображением статистики по проведенным документам за указанный период с возможностью отбора по организации.

1 стартмани

14.10.2022    2878    8    scientes    0    

3

Data science. Начало

Статистика базы данных Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Для многих 1С-ников (в том числе и достаточно опытных) может быть открытием то, что модные сейчас Data science и Machine learning уже довольно давно присутствуют в платформе. По причинам, которые я постараюсь раскрыть в дальнейшем, эти технологии почти никем не используются. Но лично я убежден, что как минимум базовые навыки в этой области пригодятся любому специалисту 1С. В этой серии статей я попробую достаточно детально, но без лишних сложностей рассказать о том, что это такое и "с чем это едят"

1 стартмани

06.06.2022    7412    2    mkalimulin    24    

80

Количество объектов в базе данных с отбором по периоду и организации

Статистика базы данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Отчет позволяет получить список объектов в базе данных с указанием их количества.

1 стартмани

17.05.2022    3242    15    FSergei    0    

2

Анализ количества справочников и документов в базе 1С

Статистика базы данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Отчет выводит количество всех документов и элементов справочников в базе 1С.

1 стартмани

07.02.2022    6884    23    vasilievil    2    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. МимохожийОднако 140 20.02.22 10:15 Сейчас в теме
Это Базопузометр?
4. frkbvfnjh 764 21.02.22 06:10 Сейчас в теме
(1) Да :)
2. Yashazz 4549 20.02.22 17:12 Сейчас в теме
Советую автору тщательнее поискать на ИС, потому что подобные разработки были во множестве, в т.ч. и на СКД. Ибо сие - очередной велосипед). Ну и насчёт единиц измерения - гораздо полезнее бывает знать в количествах записей, чем в байтах.
Sakuraso; t278; +2 Ответить
5. frkbvfnjh 764 21.02.22 06:21 Сейчас в теме
(2) Штош, предлагаю Вам выбрать лисапет на свой вкус. И хорошо бы ссылки оставлять на лисапеты в виде пруфов для сообщества, что б знали где смотреть, тем самым поможете старым публикациям, вдохнете в них новую жизнь!
parshin; ixijixi; collider; pav249683; Kopitsa.k; pyrkin_vanya; apic; +7 Ответить
13. sapervodichka 6558 23.02.22 22:10 Сейчас в теме
(5) Даёшь базопузомер! Вот мой с опцией сравнения двух баз между собой https://infostart.ru/public/1093355/
6. apic 12 21.02.22 06:24 Сейчас в теме
(2) Как говориться, сила - в разнообразии...
Kopitsa.k; +1 Ответить
7. kser87 2387 21.02.22 14:15 Сейчас в теме
(2) "конкуренция" - волшебное слово, которое двигает процесс. А не советы в тот момент, когда их никто не просит
ixijixi; Kopitsa.k; apic; frkbvfnjh; +4 Ответить
3. RustIG 1728 20.02.22 17:14 Сейчас в теме
интересный подход
8. mephistofel 13 22.02.22 12:23 Сейчас в теме
Автор, спасибо за отчет! Было интересно посмотреть на нашу базу с такой точки зрения.
Вопрос. Есть ли глубокий смысл в использовании метода ПолучитьРазмерДанныхБазыДанных через Вычислить? Не первый раз вижу такой прием. Не понимаю в чем его смысл.
Прикрепленные файлы:
frkbvfnjh; +1 Ответить
9. frkbvfnjh 764 22.02.22 12:46 Сейчас в теме
(8) Да, смысл в том, что бы отчет не "падал", на платформах которые данный метод не поддерживают. Не нравится мне использовать в коде Вычислить и Выполнить, но иногда приходится.
mephistofel; +1 Ответить
10. frkbvfnjh 764 22.02.22 12:52 Сейчас в теме
(8) Попробуйте раскоментить верхнюю строчку и открыть отчет на платформе ниже 8.3.15 и посмотрите на эффект. В конфигураторе будут ошибки при синтаксическом контроле и в режиме предприятия отчет не должен открыться, а так хотя бы количество записей посмотреть можно будет.
mephistofel; +1 Ответить
11. Dach 365 22.02.22 15:35 Сейчас в теме
А какой смысл в использовании озвученного метода в отчете, если он действительно не показывает размер индексов и т.д.? Часто ведь именно индексы таблицы и весят больше всего
12. mephistofel 13 22.02.22 16:37 Сейчас в теме
(11) я вижу смысл. Если регистр весит 100 гигов и в нём десяток тысяч записей, то это повод для оптимизации.
Прикрепленные файлы:
frkbvfnjh; +1 Ответить
15. SnubbyAston 51 25.02.22 16:17 Сейчас в теме
(11) А еще смысл в том, что он должен работать для любой базы: файловой, PostgreSQL, MS SQL... И без указания логинов/паролей от скюля, которых может и не быть.
apic; frkbvfnjh; +2 Ответить
16. Dach 365 25.02.22 17:04 Сейчас в теме
(15) никакие логины-пароли не нужны, если используется доменная аутентификация на стороне СУБД

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

Так что справедливо только для файловой, но и то - для файловых уже давным-давно есть замечательный инструмент Tool1CD
14. kuzyara 1762 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
Прикрепленные файлы:
17. sergkom 3 22.04.22 10:55 Сейчас в теме
Странно как-то. По отчету все объекты весят 5 703,17 МБ

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

Почему такая разница может быть?
Прикрепленные файлы:
18. frkbvfnjh 764 22.04.22 14:27 Сейчас в теме
(17) Потому что данный метод получения размера таблиц не может получать размер служебных таблиц (например размеры индексов), об этом сказано в публикации. Будем надеяться, что разработчики платформы будут расширять возможности метода, такую просьбу я уже написал им в группу Телеграмм Platform Suggester.
19. Eaysmax 1 11.04.23 23:04 Сейчас в теме
fr om sys.tables as t(14)

Ошибочка вроде у Вас. From?
Оставьте свое сообщение