Переход информационной базы 1С с файлового варианта на клиент-серверный нередко сопровождается заметным увеличением занимаемого на диске пространства. В этой статье мы разберем, почему это происходит, как правильно диагностировать причину роста объема и какие методы оптимизации помогут вернуть базу к нормальным размерам.
Первое, что нужно сделать — это перестать паниковать из-за цифр. Если база выросла на несколько гигабайт за квартал, важно понимать природу этого роста. Разберем основные факторы:
SQL Server платформа 1С использует иные механизмы индексации и хранения данных, нежели в файловом (.1CD) варианте. Начиная с версии платформы 8.3.15, существенно изменились принципы хранения РегистровБухгалтерии, что может привести к естественному росту объема из-за более сложной структуры индексов, обеспечивающей высокую скорость параллельной работы.SQL Server часто резервирует больше места, чем требуется для самих «сырых» данных. Значительную часть объема могут занимать индексы, необходимые для быстрого выполнения запросов.Full, все транзакции записываются в лог-файл LDF. Пока вы не выполните резервное копирование журнала транзакций, файл будет расти, занимая место на диске.Чтобы понять, что именно «раздувает» базу, проанализируем структуру таблиц. Мы рекомендуем использовать стандартные отчеты SQL Server Management Studio. Нажмите правой кнопкой мыши на базу, выберите Отчеты -> Стандартные отчеты -> Использование диска.
Если в лидерах по размеру находятся РегистрыНакопления или РегистрыБухгалтерии, это означает, что система активно работает с оборотами. Если же объем занимают вспомогательные таблицы, стоит проверить регламентные задания по обслуживанию БД, такие как Переиндексация и ОбновлениеСтатистики.
Рассмотрим пошагово, как можно оптимизировать размер базы:
Если вам не требуется восстановление базы «на момент времени» (point-in-time recovery) между ежедневными бэкапами, переведите базу в модель Simple (Простая). Это позволит автоматически очищать журнал транзакций после завершения операций.
Внимание: После перевода в Simple обязательно сделайте полную выгрузку .dt или резервную копию .bak.
Проанализируйте конфигурацию на наличие «лишнего». Часто в типовых конфигурациях хранятся общие макеты с драйверами торгового оборудования, которые не используются в вашей организации. Удаление этих объектов из конфигурации уменьшит размер CF-файла и, как следствие, объем БД.
В свойствах таблиц SQL Server можно включить сжатие (Compression). Это позволяет значительно сократить место на диске за счет упаковки страниц. Данная мера особенно эффективна для исторических данных, к которым редко обращаются пользователи.
Если база долго жила в файловом режиме, а затем была перенесена на сервер, в ней может накопиться много «мусора» в виде пустых страниц. Процедура выгрузки в файл .dt и последующей загрузки в новую пустую базу позволяет «пересобрать» таблицы, максимально компактно упаковав данные.
Не используйте Shrink (сжатие) базы как основной способ борьбы с размером. Шринк приводит к колоссальной фрагментации индексов, что замедляет работу всей системы 1С. Если вы все же вынуждены использовать сжатие, обязательно проводите полную переиндексацию всех таблиц сразу после этой операции.
Помните: размер в 25–30 ГБ для современной системы учета, такой как КА 2.4, является рабочим и нормальным показателем. Если база растет предсказуемо и это не влияет на производительность дисков, излишнее вмешательство может быть вредным.
Разберем пример очистки логов при переходе в простой режим:
-- Перевод базы в простую модель
ALTER DATABASE [ИмяВашейБазы] SET RECOVERY SIMPLE;
-- Усечение лога транзакций
DBCC SHRINKFILE ([ИмяВашейБазы_Log], 1);
Работайте с базой методично: сначала анализ роста через SQL отчеты, затем настройка модели восстановления, и только в крайнем случае — реорганизация таблиц. Успехов в оптимизации вашей 1С!