К статье
Практический материал

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

Как узнать размер базы 1С в SQL Server

Практические способы узнать размер базы 1С в MS SQL Server: через Management Studio, T-SQL запросы, анализ файлов MDF и LDF, логов и индексов.

База 1С на SQL Server растёт постоянно: накапливаются документы, регистры, версии объектов и журналы регистрации. Когда администратор видит, что диск заполнен, первый вопрос — сколько именно занимает база и из чего складывается этот объём. Ответить на него можно несколькими способами: графическим интерфейсом SQL Server Management Studio, запросами T-SQL или простым просмотром файлов базы данных.

Важно понимать, что «размер базы» — не одно число. Есть размер файла данных (MDF), размер журнала транзакций (LDF), занятое место внутри файлов и свободное пространство, которое SQL Server зарезервировал, но пока не использует. Паника из-за большого файла часто объясняется именно неиспользуемым местом внутри него.

Ниже разобраны рабочие методы определения размера базы 1С, интерпретация результатов и действия, которые можно безопасно выполнить самостоятельно, а где лучше привлечь администратора БД.

Что именно измеряется: файлы, данные и журнал

База 1С на SQL Server физически состоит минимум из двух файлов: MDF — файл с данными (таблицы, индексы, служебные структуры) и LDF — журнал транзакций. В крупных внедрениях данных может быть несколько файлов (NDF), разнесённых по разным дискам. Общий размер базы — это сумма всех файлов, но «полезный» объём — только занятое внутри них место.

Журнал транзакций в модели восстановления Full может разрастись до десятков гигабайт, если не настроено резервное копирование журнала. При этом сами данные останутся компактными. Поэтому диагностику всегда начинайте с раздельного просмотра MDF и LDF, а не с суммарной цифры.

Способ 1. Отчёт в SQL Server Management Studio

Самый наглядный метод не требует знания SQL. Откройте Management Studio, подключитесь к серверу, в обозревателе объектов найдите нужную базу 1С и кликните по ней правой кнопкой мыши. Выберите «Отчёты» → «Стандартные отчёты» → «Использование дискового пространства» (Disk Usage).

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

Если стандартный отчёт недоступен (ограничения прав или старая версия SSMS), откройте свойства базы: правой кнопкой по базе → «Свойства». На странице «Общие» указан размер базы и доступное свободное пространство, на странице «Файлы» — размер каждого файла отдельно.

Просмотр размера через SSMS
  1. 1
    Подключитесь к серверу в SQL Server Management Studio
  2. 2
    Найдите базу 1С в списке «Базы данных»
  3. 3
    Правой кнопкой: Отчёты → Стандартные отчёты → Использование дискового пространства
  4. 4
    Изучите размер файлов данных и журнала, топ таблиц по объёму
  5. 5
    Сравните занятое место со свободным внутри файлов

Способ 2. Запросы T-SQL

Когда Management Studio недоступна или нужен автоматизированный контроль, используйте запросы. Самый простой — системная процедура sp_spaceused, выполненная в контексте нужной базы. Она вернёт общий размер базы, незанятое место, объём данных и индексов.

sql
USE [ИмяБазы1С];
GO
EXEC sp_spaceused;
GO
-- Размер файлов базы
SELECT name, size * 8 / 1024 AS size_mb, type_desc
FROM sys.database_files;

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

SELECT TOP 20

t.name AS table_name,

SUM(ps.used_page_count) * 8 / 1024 AS size_mb,

SUM(ps.row_count) AS row_count

FROM sys.dm_db_partition_stats ps

JOIN sys.tables t ON ps.object_id = t.object_id

GROUP BY t.name

ORDER BY size_mb DESC;

Имена таблиц в SQL не совпадают с названиями объектов в конфигураторе 1С: регистр сведений «Цены номенклатуры» будет называться примерно _InfoRg12345. Сопоставить имена помогает функция получения структуры хранения базы в конфигураторе (Администрирование → «Параметры информационной базы» → структура хранения) либо обработки сопоставления, доступные в типовых средствах администрирования.

Способ 3. Просмотр файлов на диске

Если доступа к SQL Server нет, но есть доступ к файловой системе сервера, размер базы виден по файлам MDF и LDF в каталоге данных SQL Server. Путь к файлам можно узнать в свойствах базы (страница «Файлы») или запросом к sys.database_files, показанным выше.

Учтите ограничение метода: размер файла на диске — это физический размер, включая свободное место внутри. Файл в 100 ГБ может содержать всего 30 ГБ реальных данных. Кроме того, смотреть файлы работающей базы безопасно только на чтение — не перемещайте, не переименовывайте и не удаляйте их, пока база подключена к серверу.

Почему база большая: типичные причины

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

Отдельный случай — раздутый журнал транзакций. Если модель восстановления базы установлена Full, а резервное копирование журнала не настроено, LDF растёт неограниченно. Для баз 1С, где не требуется восстановление на произвольный момент времени, часто достаточно модели Simple — тогда журнал переиспользуется автоматически.

LDF больше MDF в разыЖурнал транзакций разросся

Проверить модель восстановления и расписание бэкапов журнала

Много свободного места в MDFФайл зарезервировал место после удалений

Рассмотреть сжатие (shrink) с пониманием рисков фрагментации

Одна таблица занимает треть базыКонкретный регистр или журнал регистрации

Проверить настройки хранения и периодичность очистки в 1С

Что делать с результатами: безопасные действия

Если обнаружено много свободного места внутри MDF, можно выполнить сжатие файла (DBCC SHRINKFILE или через интерфейс SSMS). Однако делайте это осознанно: сжатие вызывает сильную фрагментацию индексов, после которой обязательна их перестройка. Не ставьте сжатие в регулярное расписание — это вредная практика.

При разросшемся журнале транзакций последовательность такая: убедитесь в наличии актуальной полной резервной копии, определите нужную модель восстановления, при переходе на Simple выполните сжатие LDF до разумного размера. Если нужна модель Full — настройте регулярное резервное копирование журнала, только тогда его объём будет контролируемым.

Если основной объём дают данные самой 1С (регистры, журнал регистрации), действия выполняются уже на стороне прикладного решения: сокращение срока хранения журнала регистрации, свёртка итогов, удаление помеченных объектов, выгрузка старых периодов в архивную базу.

Типичные ошибки
01
Судить о размере базы только по файлу MDF на диске — игнорируется журнал и свободное место внутри файла
02
Регулярное сжатие базы по расписанию — приводит к фрагментации индексов и деградации производительности
03
Усечение журнала без резервной копии — риск потери данных при сбое
04
Очистка таблиц напрямую в SQL в обход 1С — нарушение целостности прикладных данных

Регулярный контроль размера

Разовая проверка решает текущую проблему, но не предотвращает следующую. Настройте периодический сбор метрик: запрос к sys.database_files можно выполнять заданием SQL Server Agent с записью результатов в служебную таблицу или отправкой по почте. Это позволит увидеть тренд роста и спланировать расширение диска заранее.

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

Маршрут решения

Как выбрать действие

Быстро посмотреть размер один разОтчёт «Использование дискового пространства» в SSMS
Нужен регулярный мониторингЗапрос к sys.database_files через задание SQL Server Agent
Диск заполнен, LDF огромныйПроверить модель восстановления и настроить бэкап журнала
Данных много, места малоАнализ топ-таблиц и чистка данных штатными средствами 1С
Итог

Что важно запомнить

Размер базы 1С в SQL складывается из файла данных и журнала транзакций; смотреть их нужно раздельно. Быстрый способ — отчёт в SSMS, гибкий — запросы T-SQL. Любые операции сжатия и усечения выполняйте только после резервного копирования.

Частые вопросы

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

Процедура учитывает весь выделенный базе объём, включая индексы, служебные структуры и свободные страницы внутри файлов. Разница между «занято» и «зарезервировано» — это как раз неиспользуемое внутреннее пространство, которое SQL Server держит про запас.

Можно ли узнать размер базы 1С без доступа к SQL Server?

Да, если есть доступ к файловой системе сервера — по размеру файлов MDF и LDF. Из самой 1С точный физический размер не виден, но косвенно оценить объём помогают отчёты по количеству документов и записей регистров.

Что занимает больше всего места в типовой базе 1С?

Обычно это регистры накопления и сведений с большим числом движений, таблицы присоединенных файлов (если хранение настроено в базе) и журнал регистрации при длительном сроке хранения. Точный ответ для конкретной базы даёт запрос топ-таблиц из статьи.

Опасно ли сжимать базу через Shrink?

Разовое сжатие после массового удаления данных допустимо, но оно фрагментирует индексы — после него нужна их перестройка. Регулярное сжатие по расписанию вредно: база снова будет расти, а фрагментация накапливаться.

Как быстро уменьшить огромный файл журнала LDF?

Сначала сделайте полную резервную копию. Затем либо настройте регулярный бэкап журнала (модель Full), либо переведите базу в модель Simple и сожмите файл журнала до разумного размера. Усекать журнал без копии нельзя.

Имена таблиц в SQL не совпадают с объектами 1С — как их сопоставить?

SQL-хранилище использует технические имена вида _InfoRg или _AccumRg с номерами. Сопоставление с объектами конфигурации показывает структура хранения базы данных в конфигураторе или специальные обработки сопоставления метаданных.