Многие администраторы 1С сталкиваются с ситуацией, когда после переноса большого количества файлов из базы данных во внешние тома на диске, физический размер файла .mdf в MS SQL Server остается прежним. Давайте разберем, почему это происходит и как правильно освободить дисковое пространство, не навредив производительности системы.
Важно понимать: когда вы переносите файлы в тома, данные удаляются из таблиц 1С, но MS SQL Server не возвращает освободившееся место операционной системе автоматически. СУБД помечает страницы данных как свободные внутри своего файла .mdf, чтобы в будущем записывать туда новую информацию без расширения файла. Это сделано для повышения производительности, так как частое расширение и сжатие файлов вызывает серьезные нагрузки на дисковую подсистему. Для детального анализа того, какие именно объекты занимают место внутри информационной базы, можно использовать инструмент для построения карты объемов базы 1С.
Чтобы привести размер базы к реальному значению, выполним следующие действия. Важно: все работы проводите сначала на тестовой копии базы!
Справочник.СообщенияИнтегрированныхСистем или регистр сведений ДвоичныеДанныеФайлов. Часто проблема кроется в объектах, которые не относятся напрямую к файлам, но занимают много места.MS SQL Server Management Studio. Нажмите правой кнопкой на базу данных — Отчеты — Стандартные отчеты — Disk Usage by Top Tables. Это покажет, какие таблицы съедают основной объем. Если это таблицы с префиксами Data или Blob, значит, данные еще не вычищены.Shrink. Выполните Реструктуризацию таблиц через Тестирование и исправление в конфигураторе 1С.Simple (Простая). Это делается в свойствах базы в SQL Server Management Studio.
USE [ВашаБаза];
GO
DBCC SHRINKDATABASE (N'ВашаБаза', 10);
GO
Full) и сделайте полный бэкап.Не выполняйте Shrink базы данных на регулярной основе. Эта операция вызывает дефрагментацию индексов, что приводит к резкому падению производительности 1С в первые часы и дни после выполнения. Используйте сжатие только как разовую процедуру после глобальной очистки или переноса данных.
Если после всех процедур размер базы все еще кажется завышенным, рассмотрите вариант создания новой базы и выгрузки/загрузки данных через .dt файл. При такой процедуре MS SQL Server создаст новую структуру файлов «с нуля», что гарантированно устранит все пустые области внутри файла данных.
Помните: наличие актуального резервного бэкапа перед началом любых манипуляций с моделью восстановления и структурой файлов базы данных является обязательным условием безопасности ваших данных!