Как ускорить процесс обновления базы 1С на MS SQL Server

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Обновление доработанных конфигураций 1С, особенно при необходимости «перепрыгнуть» через десяток релизов, — задача трудоемкая и рискованная. В данной статье мы подробно проанализируем ситуацию на примере базы «1С:Розница» объемом 15 Гб, работающей на MS SQL Server. Разберем технические приемы оптимизации СУБД, настройки сервера приложений 1С и административные шаги, которые помогут значительно сократить время простоя системы.

Оптимизация на уровне MS SQL Server

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

  1. Перевод базы в модель восстановления Simple (Простая): В режиме Full SQL Server записывает каждое изменение в журнал транзакций (LDF), что при массовой реструктуризации таблиц приводит к огромным нагрузкам на диск и риску переполнения лога. Переключение в Simple минимизирует эти записи. Не забудьте вернуть режим Full после завершения работ и сделать полную резервную копию.
  2. Настройка параметра MAXDOP (Max Degree of Parallelism): Для повседневной работы 1С рекомендуется значение 1. Однако во время обновления, когда создаются новые индексы и перестраиваются таблицы, выгодно выставить MAXDOP в значение 0 (использовать все ядра) или 4-8 в зависимости от мощности сервера. Это позволит SQL Server распараллелить тяжелые операции.
  3. Настройка TempDB: Во время реструктуризации основной объем временных данных проходит через системную базу TempDB. Рассмотрим рекомендации по её ускорению: вынесите файлы TempDB на самый быстрый диск (NVMe/SSD) и разделите её на несколько файлов (обычно 4 или 8) одинакового размера. Это исключит узкое место при записи во временные таблицы.
  4. Мгновенная инициализация файлов (Instant File Initialization): Убедитесь, что у учетной записи, под которой запущена служба SQL Server, есть право на выполнение задач по обслуживанию томов. Это позволит серверу мгновенно расширять файлы данных без заполнения их нулями, что критично при резком росте базы во время обновления.

Настройка консоли администрирования 1С:Предприятия

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

Блокировка регламентных заданий: Перед началом обновления в консоли администрирования серверов 1С необходимо зайти в свойства информационной базы и установить флаг «Блокировка регламентных заданий включена». Это предотвратит запуск фоновых процессов, которые могут мешать монопольному доступу или вызывать ошибки типа Слишком много фактических параметров при первом запуске после обновления конфигурации.

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

Стратегия «Подготовленного CF» для многошагового обновления

Если вам нужно обновить базу на 10 и более релизов, последовательное выполнение каждого обновления (.cfu) на рабочей базе займет слишком много времени. Разберем более эффективный алгоритм:

  1. Создаем полную копию рабочей базы на том же сервере.
  2. На этой копии последовательно выполняем все промежуточные обновления конфигурации. При этом в режиме Предприятия (пользовательском) запускать базу на каждом шаге не обязательно, если релизы позволяют «накатывать» cf через один или несколько шагов.
  3. После достижения целевого релиза на копии мы получаем финальный файл конфигурации (.cf).
  4. Важный момент: если между релизами происходила серьезная реструктуризация (например, перенос данных из одного регистра в другой), необходимо проанализировать, не требуются ли промежуточные обработки данных. Если требуются — их нужно выполнить на копии, чтобы понять общее время работы.
  5. В момент технологического окна мы просто загружаем подготовленный финальный .cf в рабочую базу и запускаем реструктуризацию один раз. Это существенно экономит время на операциях сравнения-объединения.

Использование оптимизированной реструктуризации (v2)

Начиная с версии платформы 8.3.11, появилась возможность использовать новый механизм реструктуризации. В параметрах информационной базы или через файл conf.cfg можно включить режим UpdateDBSettingsStrategy=V2. Рассмотрим подробнее преимущества и риски:

Преимущества: Процесс проходит значительно быстрее за счет иного алгоритма работы с временными таблицами в SQL. В некоторых случаях время сокращается в 3-5 раз.

Риски: Как отмечалось в обсуждении, этот процесс в случае сбоя может быть необратимым. В отличие от стандартного механизма, который сначала готовит изменения, а потом применяет их, версия V2 более агрессивна. Перед её использованием обязательно наличие актуального бэкапа и проверка целостности базы (DBCC CHECKDB).

Взаимодействие с системными администраторами

Если вы работаете удаленно по RDP, ваша скорость работы напрямую зависит от ресурсов, выделенных сессии и серверу 1С. Выясним, о чем стоит договориться с администраторами:

Ускорение обработок в режиме Предприятия

После того как конфигурация обновлена, наступает этап выполнения «обработок обновления» через Библиотеку Стандартных Подсистем (БСП). В современных версиях «1С:Розница» (начиная с 2.3) этот процесс можно ускорить:

Зайдите в раздел Администрирование — Обслуживание — Результаты обновления программы. Там доступна настройка Количество потоков обновления данных. По умолчанию стоит значение 1. Если ресурсы сервера позволяют, установите 4 или 8 потоков. Это позволит системе одновременно обрабатывать разные объекты (например, пересчитывать цены и заполнять новые реквизиты в документах), что сократит время финального этапа обновления в несколько раз.

Подведем итог: Быстрое обновление — это всегда баланс между подготовкой (создание эталонного CF на копии) и технической мощью (настройка SQL). Выполняя эти шаги, вы сможете обновить даже сильно доработанную «Розницу» за минимально возможное время.

← На главную