При работе предприятия на базе 1С ситуации, когда производительность уменьшается из-за медленной обработки запросов системой, неудивительны. Эта проблема не нова и, к счастью, имеет простые решения. Оптимизация запросов 1С – это возможность ускорения за счет устранения соединений со снижающими производительность вложенными подзапросами. Разница скорости обработки данных может варьироваться от нескольких секунд до пары десятков часов, и это реальные случаи.
Подготовка к оптимизации
Любой IT специалист на вопрос: с чего начинать процесс ускорения производительности 1С? – ответит однозначно. Любая оптимизация должна первым этапом иметь установку дополнительной подсистемы “Измерения производительности” из библиотеки СП. Этот шаг признан международными стандартами и имеет ряд преимуществ:
- Объективность – исключен человеческий фактор оценки, переплетающийся с субъективными эмоциями, мнениями и др.
- Прикладной характер, лишенный абстрактных показателей.
- Интегральность, позволяющая принимать во внимание все аспекты функционирования системы и требования ее бизнес-логики.
- Численность оценки, дающая возможность сравнивать показатели при различных обстоятельствах.
- Качественность, дающая интерпретацию результата терминами “плохо” – “хорошо”.
После такой обработки процессов, влияющих на производительность, становится четко понятно, какой именно объект системы требует оптимизации.
Причины медленного осуществления запросов
Одной из самых популярных причин неоптимальных запросов является так называемое обращение через “2 точки” фильтра. Такую оплошность заметит любой опытный программист и исправит ее в два счета с помощью избавления от этого типа обращения, без влияния на саму логику процесса.
Другая грубая ошибка, приводящая к замедлению работы1C, – это использование конструкции “ГДЕ” при накладывании фильтров на виртуальную таблицу. При таких условиях отбора информации, система будет сразу получать весь объем записей и лишь потом отберет необходимые.
Обращение к полю записи регистр-регистратор является также очень нежелательным, так как система в этом случае обращается сразу ко всем таблицам, а не к одной. Изменение данного условия значительно увеличит размер хранилища данных, но эта жертва вполне допустима ради увеличения производительности.
Еще одной распространенной ошибкой, противоречащей правилам оптимизации, является обращение к неиндексируемым полям. Для каждого условия нужен индекс, который исключит необходимость полного сканирования всех данных таблицы.
Выводы
Перед каждой оптимизацией проведение качественного анализа системы с помощью встраиваемых подсистем значительно упростит процесс увеличения производительности. Некоторые “некорректные” запросы практически невозможно выявить, используя стандартные возможности 1С.
Качественный IT-сервис делает инфраструктуру любой компании абсолютно прозрачной. Проблемы оптимизации не будут держаться на хрупких возможностях квалификации офисного системного администратора.