Администрирование · 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), откройте свойства базы: правой кнопкой по базе → «Свойства». На странице «Общие» указан размер базы и доступное свободное пространство, на странице «Файлы» — размер каждого файла отдельно.
- 1Подключитесь к серверу в SQL Server Management Studio
- 2Найдите базу 1С в списке «Базы данных»
- 3Правой кнопкой: Отчёты → Стандартные отчёты → Использование дискового пространства
- 4Изучите размер файлов данных и журнала, топ таблиц по объёму
- 5Сравните занятое место со свободным внутри файлов
Способ 2. Запросы T-SQL
Когда Management Studio недоступна или нужен автоматизированный контроль, используйте запросы. Самый простой — системная процедура sp_spaceused, выполненная в контексте нужной базы. Она вернёт общий размер базы, незанятое место, объём данных и индексов.
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 — тогда журнал переиспользуется автоматически.
Проверить модель восстановления и расписание бэкапов журнала
Рассмотреть сжатие (shrink) с пониманием рисков фрагментации
Проверить настройки хранения и периодичность очистки в 1С
Что делать с результатами: безопасные действия
Если обнаружено много свободного места внутри MDF, можно выполнить сжатие файла (DBCC SHRINKFILE или через интерфейс SSMS). Однако делайте это осознанно: сжатие вызывает сильную фрагментацию индексов, после которой обязательна их перестройка. Не ставьте сжатие в регулярное расписание — это вредная практика.
При разросшемся журнале транзакций последовательность такая: убедитесь в наличии актуальной полной резервной копии, определите нужную модель восстановления, при переходе на Simple выполните сжатие LDF до разумного размера. Если нужна модель Full — настройте регулярное резервное копирование журнала, только тогда его объём будет контролируемым.
Если основной объём дают данные самой 1С (регистры, журнал регистрации), действия выполняются уже на стороне прикладного решения: сокращение срока хранения журнала регистрации, свёртка итогов, удаление помеченных объектов, выгрузка старых периодов в архивную базу.
Регулярный контроль размера
Разовая проверка решает текущую проблему, но не предотвращает следующую. Настройте периодический сбор метрик: запрос к sys.database_files можно выполнять заданием SQL Server Agent с записью результатов в служебную таблицу или отправкой по почте. Это позволит увидеть тренд роста и спланировать расширение диска заранее.
Дополнительно контролируйте свободное место на самих дисках сервера: база может быть компактной, но диск заполнится бэкапами или временными файлами. Порог срабатывания оповещения обычно ставят с запасом, чтобы оставалось время на реакцию.
Как выбрать действие
Что важно запомнить
Размер базы 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 с номерами. Сопоставление с объектами конфигурации показывает структура хранения базы данных в конфигураторе или специальные обработки сопоставления метаданных.