SQL Базомер (8.2, 8.3)
База данных - Статистика базы данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обновление от 08/04/2026
Проверил корректную работу обработки на версиях MSSQL SERVER (для Windows) 2008, 2012, 2016, 2019, 2022, 2025 на платформе 1С:Предприятие 8.3.27.1786
На других версиях SQL Server думаю проблем так же не будет.
Корректно работает на PostgreSQL, версия 18.1-2.1C.
Необходимо установить ODBC-драйвер psqlODBC 13.02.0000-1 из дистрибутива.
================================
Небольшая обработка, которая показывает информацию о физически используемом дисковом пространстве для СУБД MS SQL Server и PostgreSQL в разрезе метаданных 1С.
Использует подключение к SQL Server через OLEDB, данные запрашиваются процедурой sp_spaceused.
http://msdn.microsoft.com/ru-ru/library/ms188776.aspx
Работоспособность проверена на SQL Server 2005, 2008, 2012 И 1С: Предприятии 8.2, 8.3
Работает как в толстом, так и в тонком клиенте(обычный и управляемый режимы).
Перед использованием на закладке "Настройки" указать данные для подключения к БД.
Для СУБД PostgreSQL:
Требуется установленный ODBC драйвер (если в тонком клиенте, то устанавливать на сервер приложений)
http://www.postgresql.org/ftp/odbc/versions/msi/
Проверял на версии PostgreSQL 9.0 и ODBC клиенте
http://wwwmaster.postgresql.org/download/mirrors-ftp/odbc/versions/msi/psqlodbc_09_00_0310.zip
Используются функции:
pg_total_relation_size
pg_table_size
pg_indexes_size
Количество записей берется из pg_class, имейте в виду данные обновляются там после VACUUM!
Комментарии и пожелания приветствуются.
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.22.168
- 1С:Комплексная автоматизация 2, релизы 2.5.22.168
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Статистика базы данных База данных Linux Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1C:ERP 1С:Розница Платные (руб)
Универсальная обработка для анализа данных ИБ (файловая, MS SQL, PostgreSQL) Win+linux
5000 руб.
05.05.2026 1661 1 4
HighLoad оптимизация Разработчик 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)
Использование оператора «В» для полей или данных составного типа (например, Регистратор) может приводить к неочевидным проблемам.
10.11.2025 15904 ivanov660 48
HighLoad оптимизация Разработчик 1С:Предприятие 8 1C:ERP Бесплатно (free)
Приведем примеры использования различных в динамических списках и посмотрим, почему это плохо.
18.02.2025 16501 ivanov660 39
HighLoad оптимизация Системный администратор Разработчик 1C:ERP Бесплатно (free)
Не всегда индексирование с дополнительным упорядочиванием полезно.
04.02.2025 15144 ivanov660 21
HighLoad оптимизация Технологический журнал Системный администратор Разработчик Бесплатно (free)
Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.
24.06.2024 19147 ivanov660 13
HighLoad оптимизация Разработчик 1С:Предприятие 8 Бесплатно (free)
Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.
06.06.2024 24990 Evg-Lylyk 73
HighLoad оптимизация Разработчик 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)
Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.
13.03.2024 14632 spyke 29
HighLoad оптимизация Разработчик 1С:Предприятие 8 Бесплатно (free)
Оказывается, в типовых конфигурациях 1С есть, что улучшить!
13.03.2024 17025 vasilev2015 22
Ошибка установки соединения: {ВнешняяОбработка.SQLБазомер.МодульОбъекта(6)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Login failed for user 'Domen\User'.
на sql server 2014 должно работать?
А то вот такая ошибка:
MS SQL Ошибка установки соединения:
{ВнешняяОбработка.SQLБазомер.МодульОбъекта(12)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Ошибка входа пользователя "sql_user_003".
При попытке подключения используя пользователя SQL с доменное авторизацией выдает ошибку, ну и не конектится:
Ошибка установки соединения: {ВнешняяОбработка.SQLБазомер.МодульОбъекта}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Login failed for user 'Domen\User'.
Добавил NTLM-аутентификацию
Да, хорошая вещь!
только почему-то не отображается значение имени метаданных:
8.2.14.519
sql 2005
Не отображается в каждой строке метаданных? У себя в БД наткнулся на ситуацию, когда для существующей таблицы в SQL нет соответствия в метаданных 1С! Как это объяснить - видимо так работала платформа, сбой в каких то релизах, БД тянется еще начиная с версии 1С 8.0. В итоге с десяток таблиц типа "справочник" и несколько "документов" присутствуют только в виде физических таблиц MS SQL, функция ПолучитьСтруктуруХраненияБазыДанных(,Истина) не возвращает таблиц с такими именами!
Да, не отображается в каждой строке метаданных!
И указанная БД MS Sql соответствует текущей используемой платформой, из которой запускаете обработку?
Объяснение нахожу только одно: конфигурация из которой запущена обработка и указанная БД в настройках - две различные базы данных!
2. Хотелось бы табличные части видеть в составе своих объектов (например, в виде дерева, как в конфигураторе). И чтоб дополнительно размер родительской таблицы отображался с учетом дочерних объектов. И естественно, чтоб можно было выбрать как отображать дочерние таблицы, в составе родительских или отдельно.
3. Таблица не поддается анализу. Даже что бы выгрузить в Excel в удобоваримом виде, надо сделать несколько лишних движений. Напрягает.
если бы под 8.1 такое было.
Да вроде нет препятствий перенести этот код в обработку созданную в 8.1.
Если не ошибаюсь, функция ПолучитьСтруктуруХраненияБазыДанных() в 8.1 существует, так что всй должно взлететь)
Взвесил обработкой получилось 45,1 Гб, а mdf файл весит 69,7 Гб.
Можете объяснить?
Обработка возвращает физически занятый размер под структуры MS SQL внутри mdf файла (-ов). Сам mdf файл как правило всегда больше, и не отражает физически занятое пространство под структуры, для уменьшения можете использовать SHRINKDATABASE
Т.е в вашем случае SHRINKDATABASE выбросит пустое место из mdf и файл станет чуть больше 45,1 гб
Результат = objCmd.Execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): ERROR: function pg_table_size(text) does not exist;
Error while executing the query
//|pg_table_size(schemaname||'.'||tablename) / 1024 AS table_usage_kb,
//|pg_indexes_size(schemaname||'.'||tablename) / 1024 as index_usage_kb,
|0 AS table_usage_kb,
|0 as index_usage_kb,
Тогда такой ошибки не будет. А так в 8.4 нет такой функции pg_table_size
Таблица = ПолучитьСтруктуруХраненияБазыДанных(,Истина);
//
для Каждого СтрокаТаб из Таблица цикл
СтрокаТаб.ИмяТаблицыХранения=НРег(СтрокаТаб.ИмяТаблицыХранения);
КонецЦикла;
//
Да и спасибо автору за полезную вещь
У нас вот база за последний месяц в два раза в размерах выросла.
Запустил в рабочей базе, запустил в копии месячной давности.
Вижу, регистр ВерсииОбъектов вышел на лидирующие позиции. Вспомнил, что месяц назад добавлял объекты для контроля версий. Собственно, на него и так думал, но после просмотра результатов обработки, подозрения подтвердились.
Однако, это по одному объекту стало понятно, а чтобы выявить какие еще объекты, к примеру, добавились в базе, придется в Excel выгружать и искать отличия ?
Очень помогла бы функция сравнения с подсветкой строк с добавленными и удаленными объектами. И возможность сортировки не только по размеру, но и по другим столбцам при клике на заголовок колонки.
Но это все хотелки, а за уже имеющееся огромное спасибо!
Очень помогло.
СтрокаДанные1С = Таблица.Найти(Запись.ИмяТаблицыSQL, "ИмяТаблицыХранения");
Решается парой строк кода.
Платформа: 1С:Предприятие 8.3 (8.3.18.1741)
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.111.16)
Приложение: Толстый клиент
Сервер PosgreSQL на Linux. Так не работает?
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 95193
Создание 19.10.11 13:35
Обновление 08.04.26 16:06
Просмотры 79225
Загрузки 628
Рейтинг
106
Комментарии 62
Код открыт Да
Рубрики Статистика базы данных HighLoad оптимизация
Кому
Системный администратор
,
Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация
Универсальные
,
1С:ERP Управление предприятием 2
,
1С:Комплексная автоматизация 2.х
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)