25 окт. 2012 г.

Оптимизация 1С

Допустим, нам необходимо посмотреть, как можно ускорить формирование отчета. Мы запускаем отладчик, включаем замер производительности, находим слабые места и оптимизируем код/запрос. Сделали, в тестовой базе результаты устраивают, а в действующей базе опять медленно. А у нас, оказывается, файловая БД и с ней 20 пользователей работают по сети, и тормоза наблюдаются не только в отчете, но и в работе с базой в целом. В этом случае ситуацию можно разрешить, перенеся базу на связку Сервер 1С + СУБД, MS SQL например. Но, чем больше подключений к базе, тем больше необходимо уделять внимание оптимизации не только кода, но и производительности серверной части и организации СУБД.

В блоге Гилева было найдено много интересных публикаций по оптимизации быстродействия. Например, в вебинаре "Ускорение 1С:Предприятие 8" (YouTube playlist) дается обзор ключевых мест для оптимизации.

Можно выделить следующие моменты:
1. Оптимизация кода 1С. Для оптимизации кода Гилев обращает внимание на продукт 1С "Центр управления производительностью", рекомендует использовать управляемые блокировки. Так же стоит рассмотреть переход на тонкий клиент и реализацию отчетов на СКД - все манипуляции с данными происходят на сервере.
2. Мощность сервера и пропускная способность сетевого оборудования. Сервер, купленный три года назад, уже не справляется с возросшей нагрузкой, связанной с разросшейся базой и увеличением количества пользователей.
3. Индексация данных, размещение данных и индексов в разных файлах.
4. Регламентные процедуры СУБД и 1С.

На практике, конечно же, каждый случай масштабной оптимизации выливается в отдельное исследование проблемы и требует индивидуального подхода. Оптимизация быстродействия системы на 1000 пользователей будет кардинально отличаться от оптимизации 10-пользовательской системы. Соответственно, и уровень подготовки специалиста должен быть значительно выше. Конечно, можно сказать, что не всем удается поучаствовать в таких внедрениях, масштаб организации не тот или интегратор/франчайзи, в котором ты работаешь, не берется/не подключает тебя к таким проектам. Но, коллега, ложки нет, мы сами определяем границы наших возможностей. Интересоваться вопросом можно начать уже сейчас, а возможность для реализации, так или иначе, представится. Вопрос в том, насколько ты будешь готов к этому.

Ссылки по теме из блога Гилева:
Быстродействие
Оптимизация
Нагрузочное тестирование
Методики тестирования
Администрирование

Комментариев нет:

Отправить комментарий