База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как ускорить 1С:ERP с серверной базой? › Ответ в теме: Как ускорить 1С:ERP с серверной базой?
Чтобы ускорить быстродействие 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/