Многие технические специалисты столкнулись с проблемой: привычная процедура выгрузки информационной базы в файл .dt (команда /DumpIB) на последних версиях платформы 1С:Предприятие 8.3 стала занимать в 2–3 раза больше времени, чем раньше. Особенно остро эта проблема проявляется в крупных базах, таких как 1С:Управление торговлей 11. Проанализируем ситуацию, проведем замер производительности контура 1С и поиск узких мест (в этом поможет инструмент комплексного анализа производительности 1С), выясним причины замедления и разберем по шагам способы решения этой задачи.
Одной из первых гипотез при замедлении работы с базой данных является некорректная настройка параллелизма. Платформа 1С при выгрузке данных активно взаимодействует с SQL Server, и если настройки распределения нагрузки между ядрами процессора выставлены неоптимально, процесс чтения таблиц может значительно затянуться.
Рассмотрим, на что следует обратить внимание в настройках сервера баз данных:
Важно помнить, что даже если в настройках SQL стоит 0 (использовать все процессоры), платформа может ограничивать потоки на уровне сеанса. В этой ситуации полезно использовать детализированный менеджер задач (процессов) 1С, чтобы увидеть реальное распределение ресурсов. Попробуем изменить настройки на уровне СУБД, чтобы позволить серверу более эффективно отдавать данные конфигуратору.
Процесс /DumpIB — это не простое копирование файла, а последовательное чтение всех данных из таблиц. Если индексы базы сильно фрагментированы, а статистика устарела, SQL-сервер строит неоптимальные планы чтения — для оптимизации СУБД подойдёт набор обработок для очистки и сжатия базы 1С. Разберем, как это влияет на скорость:
При выгрузке платформе приходится сканировать огромные объемы данных (здесь поможет предварительно оценить размер таблиц базы данных). Если выполнение обычного SELECT замедляется из-за фрагментации, то общая скорость формирования DT падает пропорционально. Практика показывает, что выполнение операции Тестирование и исправление с пересчетом итогов и реиндексацией может ускорить процесс выгрузки на 25–30%.
В последних версиях платформы (начиная с 8.3.22 и выше) разработчики 1С внедрили ряд изменений, которые не афишируются в явном виде, но влияют на производительность. Если вы хотите детально разобраться в происходящем, можно посмотреть содержание ТЖ, даже если нет доступа к серверу 1С, чтобы выявить скрытые операции:
Проанализируем структуру базы данных. Если в базе хранится много картинок или скан-копий (собрать сведения о присоединенных файлах поможет специализированный отчет) непосредственно в таблицах Config или Files, это создает основную нагрузку при сериализации данных в формат DT — решить эту проблему поможет обработка переноса файлов из базы 1С на диск. Платформа вынуждена обрабатывать каждый двоичный объект, что в новых версиях происходит медленнее из-за усложненных механизмов контроля целостности.
Если стандартный вызов через 1cv8.exe /DumpIB работает недопустимо долго, рассмотрим альтернативный современный способ — использование утилиты командной строки ibcmd. Она оптимизирована для работы в серверных сценариях и лишена части графических надстроек конфигуратора, которые могут тормозить процесс.
Пример использования утилиты для выгрузки (в консоли):
ibcmd infobase dump --db-type=mssql --db-server=ServerName --db-name=BaseName --db-user=sa --db-pwd=password --file=C:\Backup\base.dt
Этот метод часто показывает более стабильные результаты по времени, так как работает с данными на более низком уровне.
Выясним еще несколько факторов, которые могут помочь ускорить процесс:
TempDB расположена на быстрых дисках (NVMe/SSD). При формировании выгрузки 1С создает сложные временные наборы данных..dt в реальном времени в момент его записи. Исключение расширения .dt из проверки может дать значительный прирост скорости.SQL Server, чтобы исключить сетевые задержки при передаче огромных массивов данных между сервером приложений и сервером баз данных.Важное напоминание: Не забывайте, что по рекомендации фирмы 1С, файл .dt предназначен для переноса данных, а не для создания ежедневных резервных копий. Для бэкапов используйте средства СУБД (.bak файлы), которые работают в десятки раз быстрее.