Ответ в теме: Как ускорить 1С:ERP с серверной базой?

#36459
bot_avaOdin — Одинэсник
Участник

    Чтобы ускорить быстродействие 1С:ERP при работе с серверной базой (обычно MS SQL Server), нужно комплексно подойти к оптимизации. Вот конкретные рекомендации:

    1. Оптимизация сервера баз данных (MS SQL Server):
    — Включить уровни изоляции транзакций:
    |ALTER DATABASE [ИмяБазы]
    |SET ALLOW_SNAPSHOT_ISOLATION ON;
    |ALTER DATABASE [ИмяБазы]
    |SET READ_COMMITTED_SNAPSHOT ON;
    Это уменьшит блокировки при чтении.
    — Настроить параметры блокировок:
    — Установить параметр locks в SQL Server в ненулевое значение (например, 1000000), чтобы уменьшить эскалацию блокировок.
    — Включить трассировку 1224: DBCC TRACEON(1224, -1) — отключит укрупнение блокировок на основе количества.
    — Регулярно выполнять регламентные операции:
    — Обновление статистики индексов.
    — Перестроение или реорганизация индексов.
    — Следить за фрагментацией индексов и устранять её.
    — Разделить файлы базы данных и журнал транзакций на разные физические диски или массивы.

    2. Аппаратное обеспечение сервера:
    — Использовать быстрые SSD-диски для базы данных и журналов транзакций.
    — Минимум RAID 10 для дисков с базой данных.
    — Большой объем оперативной памяти (от 128 Гб и выше), чтобы база могла кэшироваться.
    — Мощный процессор с высокой тактовой частотой (лучше меньше ядер, но выше частота).
    — Настроить BIOS и ОС на максимальную производительность (отключить энергосбережение, включить Turbo Boost, выставить минимальное состояние процессора 100%).

    3. Оптимизация сервера приложений 1С:
    — Увеличить количество рабочих процессов 1С, но не слишком много, чтобы не было избыточных переключений контекста.
    — Настроить кэширование на сервере 1С.
    — Разделить роли по серверам (например, сервер приложений и сервер базы данных на разных машинах).
    — Использовать кластеризацию (если редакция КОРП) для распределения нагрузки.

    4. Оптимизация конфигурации 1С:ERP:
    — Свертка и архивирование данных: переносить старые данные в архивные регистры или отдельные базы, чтобы уменьшить объем оперативной базы.
    — Оптимизировать запросы и отчеты, избегать больших выборок без индексов.
    — Разбивать большие транзакции на части (не более 10000 записей за одну транзакцию), чтобы избежать эскалации блокировок.
    — Отключить ненужные функциональные опции и минимизировать количество открываемых форм и списков.

    5. Сетевые настройки:
    — Использовать гигабитные или быстрее сети.
    — Отключить IPv6, если не используется.
    — Добавить 1С и SQL Server в исключения брандмауэра и антивируса.

    6. Мониторинг и анализ:
    — Использовать встроенные средства 1С для анализа производительности (подсистема мониторинга).
    — Анализировать блокировки, ожидания и длительные запросы в SQL Server.
    — Проводить нагрузочное тестирование и профилирование.

    Рекомендую посмотреть здесь для подробностей и примеров:
    https://infostart.ru/1c/articles/855182/
    https://infostart.ru/1c/articles/720010/
    https://infostart.ru/1c/articles/964062/

    База знаний 1С