Многие разработчики сталкиваются с ситуацией, когда при внесении незначительных изменений в конфигурацию, например, при добавлении одного булевого реквизита, база данных 1С, работающая на SQL Server, начинает потреблять колоссальные ресурсы диска и оперативной памяти, а физический объем файлов MDF и LDF резко возрастает. Давайте разберемся, почему это происходит и как правильно реагировать на такое поведение системы.
Когда мы изменяем структуру данных в 1С (добавляем реквизит в документ), платформа не просто выполняет команду ALTER TABLE. Для обеспечения целостности данных при работе с большими таблицами 1С использует процедуру реструктуризации:
В этот момент SQL Server требует дополнительное пространство на диске, равное объему исходной таблицы. Даже после завершения процесса SQL Server часто не возвращает высвободившееся пространство операционной системе, помечая его как свободное внутри файла данных (MDF). Именно поэтому визуально размер базы на диске увеличивается.
Рост файла лога транзакций (LDF) тесно связан с моделью восстановления базы данных (Recovery Model). Если ваша база находится в режиме Full (полная модель восстановления), каждое действие по переносу данных при реструктуризации записывается в лог для обеспечения возможности восстановления на момент времени.
Чтобы избежать неконтролируемого разрастания лога, необходимо:
Simple (простая), в которой лог очищается автоматически.Чтобы минимизировать негативные последствия реструктуризации крупных объектов, рассмотрим следующие шаги:
MDF, будет эффективно использоваться системой в будущем для новых документов. Применять SHRINK (сжатие) базы следует только в крайних случаях, так как это вызывает сильную фрагментацию индексов и временное замедление работы всей базы.РегистрСведений, что позволит сделать структуру документа более «легкой» и упростит дальнейшее обслуживание.UPDATE STATISTICS и дефрагментацию индексов. Это позволяет SQL-серверу быстрее строить планы запросов и эффективнее управлять ресурсами при выполнении тяжелых операций изменения метаданных.Ситуация, когда при добавлении одного реквизита база растет на несколько гигабайт — это штатное поведение SQL Server при работе с 1С. Основная нагрузка приходится на дисковую подсистему из-за чтения и записи огромного объема данных. Понимая эти механизмы, вы сможете более грамотно настраивать регламентные задания по обслуживанию баз данных и планировать технические окна для обновления конфигураций.