Размер таблиц серверной базы данных (для двух СУБД)

16.05.24

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

Публикация размещена исключительно в образовательных целях и подходит только для платформы версии 8.3.19.1522.
Использует недокументированные средства доступа к базе данных 1С. Прямое обращение к СУБД нарушает лицензионное соглашение,
может изменить поведение платформы, привести к разрушению базы данных, скомпрометировать данные,
а также привести к отказу в официальной поддержке Фирмы 1С.
Объединен, унифицирован и значительно улучшен функционал двух исходных обработок для контроля размеров таблиц хранения 1С в серверных базах: https://infostart.ru/1c/tools/128362/ (для MS SQL) и https://infostart.ru/1c/tools/978816/ (для PG SQL).

Скачать исходный код

Наименование Файл Версия Размер
Размер таблиц серверной базы данных (для двух СУБД)
.epf 22,10Mb
8
.epf 3.7 22,10Mb 8 Скачать

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

  • Добавлен выбор типа СУБД (с провайдером доступа к данных) из списка предусмотренных.
    • При выборе типа СУБД выполняется стандартное заполнение строки соединения
      с частичным заполнением ее параметров.
  • Для MS SQL добавлено оптимизированное формирование данных о размере таблиц хранения
    в базе без обращения к временным таблицам (используется обработкой по умолчанию).
    • При этом заметно ускоряется формирование данных и уменьшается вероятность блокировок
      при одновременной работе обработки в разных базах
      .  
  • Для PG SQL добавлен вывод информации о свободном объеме таблиц хранения в базе 
    (выделенного СУБД, но фактически не использованного). 
  • В список с данными размеров таблиц хранения в базе вставлена новая колонка 
    • с признаком добавления объекта в базу каким-то из расширений конфигурации
  • Добавлена возможность вывода показателей размера таблиц хранения в базе 
    • в разных единицах измерения: в GB, в MB и в KB
  • Добавлена группировки списка с данными размеров таблиц хранения в базе
    в двух возможных вариантах:
    • по типу объекта метаданных и имени объекта метаданных (вариант из исходных обработок);
    • только по полному имени метаданных объекта таблиц хранения
      (полезно для выявления самых проблемных объектов);
  • Добавлена возможность фильтрации списка с данными размеров таблиц хранения в базе
    • по имени объекта метаданных таблиц (по соответствию заданной маске поиска). 
  • Обработка адаптирована для использования в качестве дополнительной внешней обработки
    • в конфигурациях, разработанных на основе БСП
  • При создании объекта обработки выполняется контроль прав доступа для текущего пользователя 1С.
    • Контроль доступа выполняется по наличию списка "крутых" прав в 1С (подробней смотри ниже).
    • При отсутствии хоть одного проверяемого права доступа - выбрасывается исключение
  • Выбранная строка соединения может быть сохранена в списке выбора строк в настройках
    пользователя с именем "SA" для повторной установки из списка выбора поля ввода в форме.
    • Сохраненный список выбора строк доступен под любыми пользователями 1С,
      имеющих право доступа к обработке


Подробнее о добавленных сервисных удобствах смотрите в справочной информации к обработке  


Иллюстрированная справочная информация по обработке:


1) Предусмотренные в обработке значения "Тип СУБД (с провайдером)":

  • (1.0) MS SQL через провайдера ''Provider=SQLOLEDB.1''

  • (1.1) MS SQL через провайдера ''Provider=SQLNCLI10.1''

  • (1.2) MS SQL через провайдера ''Provider=SQLNCLI11.1''

  • (2.0) PostgreSQL через драйвер ''Driver={PostgreSQL Unicode}''

  • (2.1) PostgreSQL через драйвер ''Driver={PostgreSQL Unicode(x64)}''

От целой части значения зависит собственно сам тип СУБД, на сервере которой развернута база.
Соответственно, целая часть значения определяет текст запроса через ADO для получения размера
таблиц хранения и алгоритм обработки полученных данных.

От дробной части зависит стандартное заполнение строки соединения с использованием перечисленных
выше провайдеров OLEDB или драйверов ODBC. 
При этом строка соединения после стандартного заполнения при выборе “Типа СУБД
может быть произвольно изменена
.
Например, можно указать строку соединения с провайдером или драйвером для выбранной СУБД
не из списка перечисленных выше.

2) Стандартное заполнение строки соединения для значения типа СУБД ‘’Provider=SQLOLEDB.1’’:

  • Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);

  • Имя Сервера SQL заполняется именем Сервера 1С
    (не придется корректировать, если СУБД установлена на одной машине с Сервером 1С);

  • Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;

3) Стандартное заполнение строки соединения для значения типа СУБД ‘’Provider=SQLNCLI10.1’’:

  • Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);

  • Имя Сервера SQL заполняется именем Сервера 1С
    (не придется корректировать, если СУБД установлена на одной машине с Сервером 1С);

  • Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;

4) Стандартное заполнение строки соединения для значения типа СУБД ‘’Provider=SQLNCLI11.1’’:

  • Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);

  • Имя Сервера SQL заполняется именем Сервера 1С
    (не придется корректировать, если СУБД установлена на одной машине с Сервером 1С);

  • Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;

5) Стандартное заполнение строки соединения для значения типа СУБД ‘’Driver={PostgreSQL Unicode}’’:

  • Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);

  • Имя Сервера SQL заполняется именем Сервера 1С
    (не придется корректировать, если СУБД установлена на одной машине с Сервером 1С);

  • Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;

6) Стандартное заполнение строки соединения для значения типа СУБД ‘’Driver={PostgreSQL Unicode(x64)}’’:

  • Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);

  • Имя Сервера SQL заполняется именем Сервера 1С
    (не придется корректировать, если СУБД установлена на одной машине с Сервером 1С);

  • Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;

7) Скрытие учетных данных в строке соединения из контекстного меню поля ввода:

  • При скрытии учетных данных в форме вместо фактической строки соединения показывается
    ее стандартно заполненная копия с заменой значений учетных данных
    (имя сервера, имя базы, логин-пароль, порт) на ”звёздочки”.

  • При этом значение фактической строки соединения сохраняется в данных формы.

8) Результат скрытия учетных данных в указанной строке соединения:

  • При скрытии учетных данных в форме вместо фактической строки соединения показывается
    ее стандартно заполненная копия с заменой значений учетных данных
    (имя сервера, имя базы, логин-пароль, порт) на ”звёздочки”.

  • При этом значение фактической строки соединения сохраняется в данных формы.

9) Отображение учетных данных в строке соединения из списка выбора поля ввода копии строки:

  • Также отобразить учетные данные можно нажатием на кнопку “Выбор” поля ввода
    с картинкой “Увеличить масштаб”.

10) Контекстное меню при нажатии на кнопку “Регулирование” поля ввода строки соединения:

Позволяет выполнить следующие действия:

  • Стандартно заполнить строку соединения согласно выбранного значения Типа СУБД;

  • Очистить текущее значение строки соединения;

  • Скрыть учетные данные в текущей строке соединения (смотри выше пункт 7 и пункт 8);

При этом обработка нажатий на кнопки “Выбор из списка” и “Очистка” поля ввода
строки соединения выполняется стандартно.

11) Редактирование и проверка строки соединения в диалоге COM-объекта "DataLinks":

  • Диалог COM-объекта открывается при нажатии на кнопку “выбора” справа от поля ввода строки соединения;

  • При этом проверка доступности, естественно, всегда выполняется на стороне Клиента 1С;

12) Контекстное меню при нажатии на “сервисную” кнопку справа поля ввода строки соединения:

Позволяет выполнить следующие действия:

  • Проверить указанную строку соединения на доступность (на стороне Клиента 1С или на стороне Сервера 1С);

    • Если опция “Запрос ADO на клиенте” включена – проверка выполняется на стороне Клиента 1С;

    • Если опция “Запрос ADO на клиенте” отключена – на стороне Сервера 1С;

  • Сохранить текущую строку соединения в список выбора поля ввода строки соединения:

    • В списке выбора сохраняются только проверенные на доступность строки соединения;

    • Список выбора сохраняется в общих настройках пользователя с именем “SA” для повторного использования в будущем;

    • Сохраненный список выбора восстанавливается при открытии обработки для всех пользователей с полными правами;

  • Очистить список выбора поля ввода строки соединения (очищается стразу и в форме, и в настройках пользователей);

  • Скрыть учетные данные в строке соединения (смотри выше пункт 7 и пункт 8);

13) Сервисные возможности дополнительного подменю “ЕЩЁ” командной панели формы:

Из подменю можно выполнить следующие действия:

  • Включить или отключить использование временных таблиц в запросе ADO для случая СУБД MSSQL
    (по умолчанию используются вариант запроса ADO без временных таблиц);

  • Включить или отключить опцию выполнения с выводом результатов замеров времени выполнения отдельных
    этапов формирования дерева списка с размерами таблиц в базе (отладочный режим);

  • Показать текст запроса ADO для выбранного типа СУБД в текстовом редакторе 1С (отладочная возможность);

  • Открыть справочную информацию в формате (*.docx), иллюстрированную снапшотами;

  • Об остальных действиях из подменю смотрите в справочном описании обработки;

14) Формирование списка дерева объектов с размерами таблиц в базе с запросом ADO на стороне Клиента 1С:

Провайдер данных OLEDB или драйвер ODBC для выполнения запросов через ADO 
 должен быть установлен на стороне Клиента 1С.

  • На Клиенте 1С запрос через ADO выполняется заметно медленнее, чем при выполнении на стороне Сервера 1С;

  • Но при этом с установкой драйверов для доступа к данным через ADO
    меньше административных проблем;

15) Формирование списка дерева объектов с размерами таблиц в базе с запросом ADO на стороне Сервера 1С:

Провайдер данных OLEDB или драйвер ODBC для выполнения запросов через ADO 
 должен быть установлен на стороне Сервера 1С.

  • На Сервере 1С запрос через ADO выполняется заметно быстрее, чем при выполнении на стороне Клиента 1С;

  • Но зато с установкой драйверов для доступа к данным через ADO могут быть
    серьезные административные проблемы;

16) Выбор единицы измерения размеров таблиц для вывода в списке дерева:

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

  • Возможные значения для вывода размеров таблиц в дереве списка:

    • В гигабайтах”, “В мегабайтах” и “В килобайтах” (по умолчаниюВ килобайтах”);

  • При изменении единицы измерения для обновления дерева списка используются данные предыдущего 
    запроса ADO, сохраненные во временном хранилище 1С для повторного использования.

17) Группировка списка дерева размеров таблиц в базе “по типу объекта метаданных”:

По типу объекта метаданных дерево списка группируется по умолчанию
(
вариант группировки списка в исходных обработках).

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

  • При изменении порядка группировки для обновления списка дерева используются данные предыдущего
    запроса ADO, сохраненные во временном хранилище 1С для повторного использования.

18) Группировка списка дерева размеров таблиц в базе “по полному имени объекта метаданных”:

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

  • При изменении порядка группировки для обновления списка дерева используются данные предыдущего
    запроса ADO, сохраненные во временном хранилище 1С для повторного использования.

19) Сервисные возможности в контекстном меню списка дерева размеров таблиц в базе:

Контекстное меню позволяет выполнить следующие действия:

  • Свернуть все строки списка дерева первого уровня (без подчиненных строк);

  • Свернуть текущую строку списка дерева (с подчиненными и с выше лежащими родительскими строками);

  • Открыть настройки отбора по имени метаданных
    (открывается диалог настройки параметров отбора, смотри ниже пункт 21);

20) Сервисные возможности подменю “Ещё” командной панели списка дерева размеров таблиц в базе:

Контекстное меню позволяет выполнить следующие действия:

  • Свернуть все строки списка дерева первого уровня (без подчиненных строк);

  • Свернуть текущую строку списка дерева (с подчиненными и с выше лежащими родительскими строками);

  • Открыть настройки отбора по имени метаданных
    (открывается диалог настройки параметров отбора, смотри ниже пункт 21);

  • Режим просмотра (системное подменю из трех команд);

  • Группировать список по типу объекта метаданных
    (флаг группировки списка, смотри выше пункт 17 и пункт 18);

21) Диалог настройки параметров отбора по имени метаданных в списке дерева размеров таблиц:

  • Параметры отбора по имени метаданных объектов в списке дерева редактируются
    в специальном диалоге настроек;

  • Параметры отбора включают в себя флаг использования отбора и строку маски поиска
    для условия ПОДОБНО в запросе;

  • Диалог настроек открывается командой “Открыть настройки отбора по имени метаданных
    из контекстного меню (смотри пункт 19) дерева списка размеров таблиц или
    подменю “Ещё” командной панели списка дерева (смотри пункт 20);

  • Кроме флага использования и самой строки маски поиска в диалоге для строки маски можно установить
    четыре варианта дополнения поиска (смотри ниже пункт 23, пункт 24, пункт 25 и пункт 26);

  • При установке отбора в основной форме обработки отображается надпись со строкой маски поиска отбора;

22) Сервисные возможности контекстного меню надписи выбранной строки маски поиска:

Контекстное меню позволяет выполнить следующие действия:

  • Изменить отбор по имени метаданных (открывается диалог настройки параметров отбора из пункта 21 );

  • Сбросить отбор по имени метаданных
    (снимается флаг использования отбора, строка маски поиска не изменяется);

  • Очистить отбор по имени метаданных
    (снимается флаг использования отбора и очищается строка маски поиска);

Полностью аналогичное выпадающее меню открывается также при нажатии на гиперссылку
надписи выбранной строки маски поиска.

23) Вариант дополнения строки маски поиска “Поиск в любом месте строки”:

В начале и конце строки поиска нет подстановок “отмены” (последовательностей символов “^%”).
Маска поиска в запросе дополняется символами процента “%” как слева, так и справа.
То есть в искомой строке допускается наличие любых символов как слева, так и справа.
Этот вариант дополнения поиска действует по “умолчанию.

24) Вариант дополнения строки маски поиска “Поиск справа от начала строки”:

При установке варианта в начало строки поиска добавляется подстановка “отмены”
(последовательность символов “^%”).
В конце строки поиска все подстроки подстановок “отмены” убираются, если они там вдруг есть.
Маска поиска в запросе дополняется символами процента “%” только справа.
То есть в искомой строке допускается наличие любых символов только справа.

25) Вариант дополнения строки маски поиска “Поиск слева от конца строки”:

При установке варианта в конец строки поиска добавляется подстановка “отмены”
(последовательность символов “^%”).
В начале строки поиска все подстроки подстановок “отмены” убираются, если они там вдруг есть.
Маска поиска в запросе дополняется символами процента “%” только слева.
То есть в искомой строке допускается наличие любых символов только слева.

26) Вариант дополнения строки маски поиска “Поиск внутри строки”:

При установке варианта и в начало, и в конец строки поиска добавляется подстановки “отмены”
(последовательности символов “^%”).
Маска поиска в запросе используется как есть, без дополнения конечными символами процента “%”
То есть в искомая строка должна полностью удовлетворять указанной строке маски поиска
(без концевых подстановок “отмены”)
.

27) Вывод списка дерева размеров таблиц в базе в табличный документ (системной командой):

28) Формирование списка дерева полной структуры хранения базы данных 1С
(вспомогательный сервис)
:

Опции формирования дерева структуры:

  • В терминах СУБД” - если включена, то в списке выводится структура базы в терминах СУБД,
    иначе - в терминах модели 1С;

  • С типами 1С” - если включена, то в списке дополнительно выводятся типы значений 1С
    реквизитов объектов
    (по их метаданным);

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

Для формирования дерева структуры строка соединения с базой SQL не используется и может не указываться.
Список дерева полной структуры хранения базы данных 1С формируется в формате,
описанном в статье //infostart.ru/1c/tools/97707/ .
Список полной структуры хранения базы данных 1С может быть полезен при написании
"прямых" запросов к базе через ADO.

29) Пример списка дерева полной структуры хранения базы данных 1С
(“в терминах СУБД без типов 1С”)
:

30) Пример списка дерева полной структуры хранения базы данных 1С
(“в терминах СУБД и с типами 1С”)
:

31) Сервисные возможности в контекстном меню списка дерева полной структуры
хранения базы данных 1С
:

Контекстное меню позволяет выполнить следующие действия:

  • Свернуть все строки дерева списка первого уровня (без подчиненных строк);

  • Свернуть текущую строку дерева списка (с подчиненными и с выше лежащими родительскими строками);

32) Вывод списка дерева полной структуры хранения базы данных 1С в табличный документ
(системной командой)
:

33) Использование обработки в качестве “внешней дополнительной обработки”:

В конфигурациях 1С на основе “Библиотеки стандартных подсистем” обработка может быть сохранена
в стандартном справочнике “ДополнительныеОтчетыИОбработки” и
использована в качестве “внешней дополнительной обработки”.

34) Использование обработки в обычном приложении:

Реализация дублирующего функционала обработки в обычных формах признана нецелесообразной.

  • Поэтому для использования обработки в обычном приложении в корне конфигурации базы надо
    установить 
    флагИспользовать управляемые формы в обычном приложении”.

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

35) Дополнительный контроль прав пользователя при инициализации модуля объекта обработки:

При инициализации модуля объекта у текущего пользователя дополнительно проверяется наличие прав доступа
по указанному ниже списку “крутых” полномочий:

  • Администрирование

  • АдминистрированиеДанных

  • АдминистрированиеРасширенийКонфигурации

  • МонопольныйРежим

  • АктивныеПользователи

  • ЖурналРегистрации

  • ВнешнееСоединение

  • Automation

  • ИнтерактивноеОткрытиеВнешнихОбработок

  • ИнтерактивноеОткрытиеВнешнихОтчетов

  • ОбновлениеКонфигурацииБазыДанных

  • ТолстыйКлиент//фактически право на запуск конфигуратора

  • РежимТехническогоСпециалиста” или “РежимВсеФункции

  • СохранениеДанныхПользователя

  • Вывод

При отсутствии у пользователя хотя бы одного права доступа из выше перечисленных
вызывается исключение “НЕДОСТАТОЧНО ПРАВ ДОСТУПА !!!”.

36) Использованные для разработки исходные обработки и авторские права:

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

Статьи с исходными обработками на Инфостарте:

Обработка поставляется с открытым кодом “как есть”.
Все риски ее использования берутся на себя конечными пользователями.
Разрешается дальнейшее развитие и улучшение функционала обработки.

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

********************************************************************************************************

 

Тестирование предлагаемой внешней обработки:

Предлагаемая в статье внешняя обработка при разработке тестировалась
на следующих конфигурациях и релизах платформы 1С:

  1. Отраслевое решение "1С:Производственная безопасность, комплексная редакция 1.1".
    • Релиз конфигурации 1.1.6.51 (с доработками)
    • Релиз платформы 8.3.19.1522
    • СУБД базы - MS SQL и PG SQL
  2. Отраслевое решение "1C:Фитнесклуб КОРП, редакция 4.0".
    • Релиз конфигурации 4.0.37.1 (с доработками)
    • Релиз платформы 8.3.181363
    • СУБД базы - PG SQL
  3. Две самописные конфигурации на основе БСП (управляемое приложение).
    • Релиз платформы 8.3.19.1522
    • СУБД базы - PG SQL
  4. Одна самописная конфигурация без использования БСП (обычное приложение).
    • Релиз платформы 8.3.181363
    • СУБД базы - MS SQL

 

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

  • 1С:Управление холдингом 3.2 (русский и английский интерфейсы), релизы 3.2.8.21

размер таблиц SQL

См. также

Анализ документов: свертка базы, автотесты, динамика роста базы

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

Внешняя обработка "Анализ документов и регистров" - можно использовать для детального изучения документов базы, связанных регистров (накопления и сведений). Предварительный анализ документов обычно требуется перед проведением свертки остатков базы, перед обновлением типовых релизов сильно измененной конфигурации, перед переходом на новую программу.

3 стартмани

29.12.2023    1344    10    RustIG    5    

8

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

Статистика базы данных Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

1 стартмани

26.10.2023    885    14    dimanich70    0    

5

Сведения о присоединенных файлах

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

Внешний отчет для анализа данных присоединенных файлов за произвольный период в любой конфигурации.

2 стартмани

24.10.2023    1838    42    ixijixi    6    

20

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

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

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

5 стартмани

04.09.2023    987    6    Maxiko    0    

8

Количество документов в информационной базе в разрезе видов документов

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

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

1 стартмани

16.08.2023    761    18    pwn    1    

3

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

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

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

5 стартмани

30.06.2023    2016    10    nemec    7    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. t278 57 17.05.24 03:51 Сейчас в теме
правильно понимаю, если пароли SQL и PG не знаю, то размеры не узнаю ?
2. yuraos 999 19.05.24 19:02 Сейчас в теме
(1) Да,
нужно знать учетные данные пользователя СУБД в свойствах базы на сервере 1С
и прописать их в строке соединения в форме обработки.
Оставьте свое сообщение