QPROCESSING

Программа, которая позволяет без изменения кода приложения выборочно изменять характеристики отдельных sql-запросов.

  • Снижайте затраты на оптимизацию работы приложения - не ломайте голову над тем, как добраться до "проблемного" sql-запроса, просто укажите на него программе QProcessing.
  • Ускоряйте операции пользователей без рефакторинга прикладного кода - модифицируйте любые sql-запросы, в том числе из закрытых участков кода или запросов платформы приложения.
  • Получайте эффект сразу - активируйте и деактивируйте настраиваемые правила модификации sql-запросов без перезагрузки серверов.
ИСПЫТАТЬ
  • ИНФОРМАЦИЯ
  • ОПИСАНИЕ
  • ВНЕДРЕНИЕ
  • ПОРТФОЛИО
  • ДОКУМЕНТЫ

QProcessing - это
промежуточное программное обеспечение (Middleware Software), связывающее клиентское приложение и базу данных, выполняющее потоковое сканирование трафика sql-запросов и их выборочную модификацию.


QProcessing применяется

в любых базах данных на платформе MS SQL Server и особенно востребован в ситуациях, когда:

  • невозможно изменить текста запроса через прикладной код (закрытый участок кода, код программы утерян, имеются правовые ограничения для модификации кода и т.п.);
  • долго и/или сложно искать узкие места в прикладном коде, где выполняется неоптимальный sql-запрос;
  • отсутствуют средства автоматизации процесса поиска и анализа узких мест при динамичной разработке прикладного кода.


Модель лицензирования QProcessing

Лицензия на базу данных, включает:

  • программный ключ QProcessing  для работы c одной базой данных;
  • дополнительный программный ключ QProcessing для одной базы данных, используемой для разработки/тестирования.

Лицензия на сервер баз данных, включает:

  • программный ключ QProcessing  для работы cо всеми расположенными на сервере базами данных;
  • дополнительный программный ключ QProcessing для одной базы данных, используемой для разработки/тестирования.


Формат поставки QProcessing

Электронная поставка по предоплате 100%.


Стоимость лицензий QProcessing

Лицензия на базу данных: от 95 000 ₽/год

Лицензия на сервер баз данных: от 300 000 ₽/год


Регистрационные сведения

Свидетельство о государственной регистрации Программы для ЭВМ "SoftPoint QProcessing" от 19.03.2015 № 2015613604, выдано Федеральной службой по интеллектуальной собственности, патентам и товарным знакам.


QProcessing – это компонент межсерверного взаимодействия клиентского приложения и базы данных, Фактически, это прокси-сервер, сканирующий весь трафик sql-запросов и выполняющий выборочную оптимизацию.


В основе работы QProcessing лежат настраиваемые правила, позволяющие из всего множества sql-запросов отбирать по сигнатуре целевые и осуществлять изменение текста (вставки команд баз данных, подсказки оптимизатора и др.). 


При этом QProcessing не вносит каких-то весомых задержек в пропускаемый через себя трафик. Так, для запросов, не требующих модификации, а таких большинство, задержка не превысит 100 - 200 мкс. Для модифицируемых запросов задержка зависит напрямую от объема вносимых преобразований, и не превышает 5-10 мс. А для простейших модификаций, например, добавление подсказок соизмерима с задержкой запросов без модификации.


Активация и деактивация правил QProcessing не требует перезапуска серверов и выполняется без остановки работы пользователей в базе данных целевого назначения.


На рисунке представлена схема взаимодействия сервера QProcessing с серверами приложения (например, 1С) и MS SQL Server. На схеме показаны три запроса, поступающие от сервера приложения, из которых Запрос 1 пропускается сервером QProcessing без изменений, а в Запросы 2 и 3 QProcessing добавил подсказки для оптимизатора плана запросов.


QProc (схема) with shadow.png



Примеры создания правил в QProcessing на основе регулярных выражений для оптимизации sql-запросов.


1. Включение в запрос подсказок (хинтов) для оптимизатора.
В период повышенной интенсивности работы пользователей в базе данных, некоторые sql-запросы могут существенно замедляться – оптимизатор может ошибаться в выборе плана выполнения, например, использовать соединение nested loops вместо hash join. При этом статистика может быть актуальной. При помощи QProcessing можно добавить правило с подсказкой использования "на лету" hash join, что исправит ситуацию и выбранные sql-запросы будут выполняться стабильно удовлетворительно


2. Замена текста запроса на более эффективный.
В качестве примера можно привести sql-запрос с условиями "или" в фильтре. Это приводит к безусловному использованию сканирования индекса при поиске нужных строк. Запрос при помощи QProcessing можно изменить следующим образом: составить два sql-запроса и объединить выборки. Это позволит использовать поиск в индексе и ускорить запрос.

3. Использование собственного полнотекстового индекса вместо поиска по LIKE %%
Зачастую пользователи работают с поиском по подстрокам, например, при поиске неполного наименования товаров, контрагентов, номера договора и прочей информации. Скорость работы такого поиска напрямую зависит от объёма справочника или других таблиц. Причем, по нашему опыту, полнотекстовый поиск, использующий компонент «FULLTEXT SEARCH» из состава с SQL Server не всегда работает стабильно. Например, часто зависает или возвращает разные результаты при повторных поисках в одной и той же форме с одним и тем же неизменным текстом для поиска. Используя QProcessing, есть возможность перейти на свой полнотекстовый индекс, и при появлении соответствующего запроса программа выполнит модификацию поисковых запросов "на лету", чтобы они обращались именно к нужному полнотекстовому индексу.

4. Выделение требуемого объёма ресурсов CPU для определённых групп запросов (аналитика)
Зачастую степень параллелизма (параметр max degree of parallelism) при работе с СУБД уменьшают до "1", чтобы уменьшить вероятность возникновения избыточных блокировок. Для аналитических отчётов в QProcessing возможно использовать подсказку на распараллеливание sql-запросов – опционально задавать уровень параллелизма, отличный от "1" для определённой группы запросов. Таким образом решается сразу 2 задачи: нет блокировок на параллелизме в оперативной работе, и есть ускорение аналитических отчётов. 

Внедрение QProcessing очень простое и может даже не потребовать аппаратных изменений. Обычно мы рекомендуем разворачивать программу на отдельном сервере (виртуальной машине). Но как вариант, ее можно развернуть и на сервере приложений, если его мощности и профиль нагрузки позволяют это сделать. QProcessing работает как сервис, через который проходит весь трафик sql-запросов к серверу баз данных.


Кроме этого QProcessing может быть подключен как модуль программы для ЭВМ SoftPoint Data Cluster


План внедрения в общем виде:

1. Развернуть сервис QProcessing, прописать в его настройках подключение к базе данных на сервере MS SQL.

2. Изменить в настройках сервера приложений путь к серверу СУБД и базе данных - поменять его на сервер QProcessing.

3. В настройках сервера приложения изменить подключение к базе данных сервера СУБД - поменять его на сервер QProcessing.

4. Убедиться, что трафик между серверами приложений и сервером MSSQL проходит без задержек и приступить к настройке правил модификации запросов.


Пример подключения QProcessing и настройки правила модификации запроса


delovie-linii-otziv.png

 

СберСтрахование.jpg

 

БКК Коломенское.png

  
   
 

Велесстрой.png

 

Автотрейд.png

 

Главстрой лого.png

  
   
 
   

   
 
   
     


В ближайшее время здесь появиться информация
-->