Наши услуги по оптимизации SQL:

  • Поиск неоптимальных SQL-запросов.
  • Анализ структуры БД.
  • Оптимизация SQL-запросов.
  • Выработка рекомендаций по оптимизации БД.

Цена оптимизации – от 15 000 руб.

Мы проводим оптимизацию на всех популярных БД (Oracle, SQL Server, MySQL, Postgress).

Этапы работ по оптимизации:

  • Консультация по телефону.
  • Выезд специалиста.
  • Согласование объема и стоимости работ.
  • Выполнение оптимизации.
  • Подготовка отчета и демонстрация результатов.  

Об услуге  

По статистике, более чем в 90% случаев, производительности современных серверов достаточно для решения любой прикладной задачи, однако мы часто сталкиваемся с "тормозами" и зависанием системы при построении отчетов, выполнении выгрузки данных, отображении списков и т.д., виной тому чаще всего являются неоптимальный SQL запросы.

Компания Доктор Перфоманс профессионально занимается оптимизацией SQL-запросов для различных баз данных, при этом эффективность оптимизации в некоторых случаях измеряется десятками и сотнями раз. При оптимизации учитаваются особенности каждой БД (Oracle, SQL Server, MySQL), в случае необходимости добавляются подсказки оптимизатору, строятся дополнительные индексы, выполняется пересбор статистики по таблицам, вырабатываются рекомендации по модификации структуры БД. Однако в большинстве случаев, самое простое решение оказывается одновременно самым надежным и эффективным, поэтому мы стараемся проводить оптимизацию за счет упрощения структуры запроса не меняя логики его работы. Доктор Перфоманс берет на себя риски успешности выполнения оптимизации, а именно оплата производится только по факту существенной (ускорение не менее чем на 30% времени) оптимизации запроса.

Мы имеем опыт оптимизации запросов для CMS(Drupal, Joomla, Bitrix, Umi), 1C, SAP, Axapta, АБС (Диасофт, Новая Афина), систем бронирования билетов, интернет-магазинов, социальных сетей, различных web-проектов, складских систем, витрин данных и т.д.


Пример подхода к оптимизации

В каждом конкретном случае подход к оптимизации может различаться, ниже описаны основные этапы одного из возможных путей:

1. Обнаружение и локализация проблемного SQL

Для обнаружения проблемных SQL-запросов используются специальные инструменты(профилировщики). В случае СУБД Oracle запускается трейс и собирается статистика AWR, ASH, STATSPACK. Для MS SQL Server используется встроенный инструмент SQL Profiler. БД MySQL запускается с ключем MYSQL_DEBUG. В некоторых случаях информация о SQL-запросах извлекается из лог-файлов сервера приложений, профилировщика Java/C# вызовов, либо при помощи инструмента записи скриптов нагрузочного тестирования (например HP Vugen).

2. Построение оптимального плана выполнения запроса

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

3. Разработка SQL использующего оптимальный план

После определения оптимального плана выполнения производится анализ и модификация структуры исходного запроса. Цель этой работы - "заставить" базу данных использовать оптимальный план при выполнении запроса.