Администрирование · 9 мин
Как посмотреть размер базы 1С
Как узнать размер базы 1С в файловом и клиент-серверном варианте: через каталог, SQL Server, PostgreSQL, консоль кластера. Проверка роста и типичные ошибки.
Знать размер базы 1С нужно в нескольких типовых ситуациях: при планировании места под резервные копии, перед переездом на новый сервер, при диагностике медленной работы и при контроле роста данных. Способ проверки зависит от того, как развёрнута база — в файловом или клиент-серверном варианте. Это два принципиально разных случая, и путать их нельзя: у серверной базы нет единого файла, который можно просто открыть в проводнике.
Важно понимать, что под «размером базы» можно подразумевать разное: объём самого файла данных, объём с учётом журнала транзакций, размер на диске с учётом служебных структур СУБД или объём выгрузки в формате DT. Эти цифры могут отличаться в разы, поэтому перед сравнением всегда уточняйте, о какой именно величине идёт речь.
Определяем тип базы: файловая или клиент-серверная
Прежде чем измерять размер, выясните, как подключена база. Откройте окно запуска 1С, выделите нужную информационную базу и нажмите кнопку «Изменить». В параметрах будет указан тип расположения: «На данном компьютере или на компьютере в локальной сети» (файловый вариант) либо «На сервере 1С:Предприятия» (клиент-серверный вариант).
Для файловой базы там же указан путь к каталогу — это и есть место, где лежат данные. Для серверной базы указаны имя сервера и имя базы в кластере, а сами данные хранятся в СУБД (MS SQL Server, PostgreSQL, Oracle или IBM DB2), и размер придётся смотреть уже средствами этой СУБД.
Ещё один быстрый способ — в режиме 1С:Предприятие открыть меню «Файл» → «О программе» либо «Сервис» → «О программе» (в зависимости от интерфейса). В окне будет информация о режиме работы: файловый или клиент-серверный.
Как посмотреть размер файловой базы
Файловая база 1С хранится в обычном каталоге, а основные данные сосредоточены в файле 1Cv8.1CD. Чтобы узнать размер, найдите каталог базы (путь виден в свойствах базы в окне запуска), щёлкните по файлу 1Cv8.1CD правой кнопкой мыши и откройте «Свойства». Значение «Размер» и «На диске» покажет объём базы.
Обратите внимание, что в каталоге лежат и другие файлы: журналы, вспомогательные индексы, служебные данные. Если нужно оценить суммарный объём каталога (например, для копирования), откройте свойства самой папки — проводник посчитает размер всего содержимого.
Размер файла 1Cv8.1CD не уменьшается сам по себе после удаления документов и справочников: освобождённое место остаётся внутри файла и переиспользуется под новые данные. Реальное сокращение файла происходит только после процедуры «Тестирование и исправление» с включённым режимом сжатия таблиц или после выгрузки и загрузки базы через DT.
Как узнать размер базы в MS SQL Server
Для клиент-серверных баз на MS SQL Server самый наглядный способ — SQL Server Management Studio (SSMS). Подключитесь к серверу, в обозревателе объектов найдите нужную базу, щёлкните по ней правой кнопкой и выберите «Отчёты» → «Стандартные отчёты» → «Использование диска». Отчёт покажет общий размер файлов данных и журнала транзакций, а также распределение места по таблицам.
Быстрый вариант — запрос к системным представлениям. Он возвращает размер файлов данных и журнала в мегабайтах:
SELECT name AS FileName, type_desc AS FileType, size * 8 / 1024 AS SizeMB FROM sys.database_files;Чтобы увидеть, какие таблицы занимают больше всего места, используйте запрос к sys.dm_db_partition_stats с группировкой по таблицам. Это полезно, когда база разрослась и нужно понять, какие регистры или документы являются основными «потребителями» диска — обычно это регистры накопления, регистры сведений и таблицы версирования.
Учитывайте, что журнал транзакций (файл .ldf) может занимать значительный объём, особенно при модели полного восстановления без регулярного backup log. Если общий размер базы кажется аномальным, сравните отдельно размер файла данных и размер журнала.
Как узнать размер базы в PostgreSQL
В PostgreSQL размер базы данных удобно смотреть встроенной функцией. Подключитесь к серверу через pgAdmin или psql и выполните запрос:
SELECT pg_size_pretty(pg_database_size('имя_базы'));Функция pg_size_pretty выводит значение в читаемом виде (МБ, ГБ). Чтобы получить размеры всех баз на сервере одним списком, используйте запрос к представлению pg_database с той же функцией и сортировкой по убыванию.
Для анализа отдельных таблиц применяется pg_total_relation_size('имя_таблицы') — она учитывает данные таблицы, индексы и TOAST-область. Имена таблиц 1С в PostgreSQL выглядят технически (например, _document123, _accumrg456), поэтому для сопоставления с объектами конфигурации используют служебную таблицу Params или обработки сопоставления структуры хранения.
Размер базы через консоль кластера и выгрузку DT
Консоль кластера серверов 1С не показывает физический размер базы данных — она отображает только параметры подключения и свойства информационной базы. Поэтому для клиент-серверного варианта консоль подходит лишь для того, чтобы уточнить имя базы в СУБД и сервер СУБД, а сам размер нужно смотреть инструментами СУБД.
Косвенный способ оценки — выгрузка базы в файл DT через конфигуратор («Администрирование» → «Выгрузить информационную базу»). Размер полученного файла даёт приблизительное представление об объёме данных, но он обычно меньше размера базы в СУБД: выгрузка сжимается и не содержит индексов и служебных структур СУБД.
Как контролировать рост базы и что считать тревожным признаком
Разовая проверка размера малоинформативна — полезнее отслеживать динамику. Заведите простой журнал: дата, размер файла данных, размер журнала транзакций. Замеры раз в неделю или раз в месяц позволят увидеть темп роста и спрогнозировать, когда закончится место на диске.
Резкий скачок размера обычно связан с конкретными событиями: свёртка базы, массовая загрузка данных, включение версионирования объектов, обновление конфигурации, перепроведение документов за большой период. Если база выросла заметно без видимых причин, проверьте таблицы-лидеры по объёму — часто виновником оказывается регистр с ошибочно высокой частотой записи или накопленные исторические данные.
Отдельная ситуация — когда размер на диске растёт, а данных в базе не прибавляется. В файловом варианте это следствие фрагментации и непереиспользованного места внутри 1Cv8.1CD, лечится тестированием и исправлением со сжатием. В SQL Server — раздутым журналом транзакций, который можно уменьшить после резервного копирования журнала штатными средствами СУБД.
Как проверить результат
Рост соответствует объёму вводимых документов
Скачок в разы без изменений в работе пользователей
Журнал сопоставим или меньше файла данных
Журнал превышает размер данных в несколько раз
Запас под рост и резервные копии
Свободно меньше размера одной полной копии базы
Типичные ошибки при оценке размера базы
Ещё одна распространённая ошибка — измерять размер базы по объёму резервной копии. Сжатая копия SQL Server или PostgreSQL меньше рабочей базы, и планировать дисковое пространство «по бэкапу» нельзя: при восстановлении база развернётся в полный объём файлов данных и журнала.
Что важно запомнить
Файловую базу измеряют по файлу 1Cv8.1CD и каталогу, серверную — средствами СУБД: отчётами SSMS или функцией pg_database_size. Размер базы, размер выгрузки DT и размер на диске — разные величины. Контролируйте динамику роста и отдельно следите за журналом транзакций.
Частые вопросы
Почему база 1С не уменьшается после удаления документов?
Удалённые данные лишь помечаются как свободное место внутри файла базы и переиспользуются под новые записи. Чтобы физически уменьшить файл в файловом варианте, выполните «Тестирование и исправление» с включённым сжатием таблиц либо выгрузку и загрузку через DT. В SQL Server для возврата места используется операция shrink, но её применяют осознанно, так как она фрагментирует индексы.
Можно ли посмотреть размер базы из самого конфигуратора 1С?
Штатного инструмента показа размера в конфигураторе нет. Из него можно только выполнить выгрузку в DT и оценить объём по полученному файлу, что даёт приблизительную, заниженную оценку. Точный размер смотрят средствами операционной системы или СУБД.
Где физически лежат данные клиент-серверной базы 1С?
В каталоге данных СУБД, указанном при её установке: у MS SQL Server это файлы .mdf и .ldf, у PostgreSQL — подкаталоги внутри каталога данных кластера. Каталог srvinfo сервера 1С содержит только реестр кластера и служебную информацию, а не сами данные базы.
Как узнать, какие таблицы занимают больше всего места?
В MS SQL Server — стандартным отчётом «Использование диска» по таблицам или запросом к sys.dm_db_partition_stats. В PostgreSQL — функцией pg_total_relation_size с сортировкой по убыванию. Технические имена таблиц 1С сопоставляют с объектами конфигурации через структуру хранения базы данных.
Размер выгрузки DT сильно меньше размера базы — это нормально?
Да. Файл DT сжат и не содержит индексов, служебных областей и журнала транзакций, поэтому обычно заметно меньше рабочей базы. Разница в два-три раза — обычная ситуация и не признак повреждения выгрузки.
Как часто нужно контролировать размер базы?
Для активно наполняемых баз достаточно замера раз в неделю или раз в месяц с записью в журнал. Внеплановая проверка нужна после массовых операций: свёртки, загрузки данных, обновления конфигурации, перепроведения документов за длительный период.