Пользователям 7.7 - скорость!

Важным аспектом существования и развития бизнеса является оперативность принятия управленческих решений. Как правило, основой для них служит анализ информации в учетной системе. Если у вас система 1С:Предприятие 7.7 служит долгие годы верой и правдой, но на разных уровнях возникают проблемы, которые можно классифицировать следующим образом:

- у руководителя: персонал часто ссылается на то, что «программа долго думает», мешая тем самым решать текущие вопросы;

- у менеджера, бухгалтера: оформление первичных документов в целом удобно, отчеты так же удовлетворяют, но проведение документов и построение отчетов может занимать длительное время. Кроме этого, периодически нельзя полноценно работать, дожидаясь окончания «регламентных операций».

- у системного администратора: «1C:Предприятие 7.7 для SQL» работает не слишком быстро на достаточно мощном сервере. Вы думаете о путях оптимизации, так как пользователи все настойчивее требуют это сделать. Выбор не велик – необходим новый сервер, замена нескольких рабочих станций, организация терминального доступа, либо переход на новую версию программного обеспечения. Возможно, это приведет к увеличению скорости...

Ваш выбор - сильное решение – оптимизация под SQL!

На чем это основано?

Кроме плюсов, реализованных в платформе V7.7, существуют и недостатки, которые проявляются при большом объеме накопленных данных. Прежде всего, следует сказать о том, что в силу своей универсальности, платформа поддерживает два формата хранения данных:

  • "DBF", для малых объемов данных и как следствие – для небольших организаций;
  • "SQL", для больших объемов информации.

 Основным преимуществом универсальности является почти безболезненный переход с DBF версии на SQL при сохранении всех накопленных данных, а так же настроек системы.
Универсальность всегда проигрывает производительности. При работе с SQL форматами используются те же принципы обработки данных, заложенные в платформе, что и DBF. Оптимизация скорости исполнения алгоритмов строится как раз на принципе отказа от универсальности за счет использования специфичных для SQL подходов к обработке информации.
Большинство фирм в своей деятельности используют типовые решения – типовые конфигурации от производителя – "Торговля и Склад", "Производство + Услуги + Бухгалтерия" в силу того, что функционал решений, с минимальными доработками устраивает специалистов. Часто бывает, что заложенный функционал используется не на все 100%, а от силы на 10%-20% в силу специфики учета. В данном случае имеет смысл говорить об избыточности анализа условий, заложенной в алгоритмах.
Еще одно направление, в котором следует искать причину падения производительности – использование не оптимальных алгоритмов с точки зрения платформы или структуры данных. Такое встречается в базах данных, разработанных специалистами, которые весьма отдаленно понимают структуру хранения данных, методов их разработки. Характерно для не типовых решений.
Направления оптимизации (по нарастанию эффекта):

  • Уход от избыточности, путем удаления из кода функционала по обработке ситуаций, которые точно не будут задействованы в обозримом будущем.
  • Оптимизация алгоритмов на уровне методов и подходов платформы 1С:Предприятие 7.7.
  • Отказ от универсальности, путем использования SQL подходов.

Так как последнее направление дает наибольший эффект, стоит остановиться на нем подробнее. В подавляющем большинстве случаев, уже только изменение методов выборки большого объема данных дает нужный эффект. Группы направления:

  • Применять более гибкую выборку данных на основе методов Select по сравнению с обычными запросами в терминах платформы 7.7. Даже если функционала запроса 7.7 достаточно, то оптимизировать есть что и эффект будет существенным.
  • Замена часть кода, написанного на встроенном языке платформы 7.7, на пакетную обработку, с использованием Select (логику работы, которую нельзя построить с использованием запросов 7.7 в силу их ограничений).
  • Полностью замена части алгоритмов (процедур, функций, модулей) с типового решения платформы 7.7 на SQL. В таком случае расчет будет происходить на сервере и нагрузка на рабочую станцию значительно уменьшается.

Как уже было сказано, только оптимизация алгоритмов выборки в большинстве случаев дает ощутимый эффект. Но в отдельных случаях есть возможность обращаться и к другому арсеналу средств. Среди них можно выделить:

  • Пакетное изменение данных. Как пример – импорт из внешнего источника большого объема информации, который должен исполняться максимально быстро.
  • Разрешение конфликтов на уровне блокировок данных (обычно при проведении). Использование более гибких механизмов, по сравнению с теми, которые заложены в платформе 7.7.
  • Очистка таблиц данных от лишней информации, которая накоплена в результате нескольких лет работы базы данных.
  • Использование дополнительного индексирования.
  • Другие подходы к организации и использованию SQL баз данных, которые приводят к существенному росту производительности алгоритмов системы, а вместе с этим –  к  экономии времени.
 
Важно отметить, что наиболее простой и эффективный способ оптимизации - в изменении алгоритмов выборки данных, является одним из типовых методов, заложенных в платформу 1С. Не ни какого "шаманства"! Работа с базой данных и конфигурацией после этого будет так же как и раньше отвечать типовым требованиям. Для системного администратора или пользователей ничего не изменится, кроме существенной возросшей скорости системы.

Для получения списка объектов конфигурации (отчетов, диалоговых форм, отдельных модулей), которые имеет смысл оптимизировать необходимо обследование. В результате Клиент получает список объектов, «критичных» и «рекомендуемых» к оптимизации. Так же в отчете содержится стоимость работ по каждому объекту и минимальный результат по скорости. В большинстве случаев обследование необходимо, так как причины «тормозов» могут быть не так очевидны. Анализу подлежит как конфигурация БД, так и сами данные. Обследование так же производится удаленно. Альтернативный подход к оптимизации возможен, если у Клиента есть «специалист по 1С», который может самостоятельно оценить необходимые к оптимизации объекты конфигурации на БД.