Разное время выполнения запроса при профилировании и "обычном" выполнении

Обсуждение возникших проблем, предложений и ошибок dbForge для MySQL
Ответить
pbabkin
Сообщения: 2
Зарегистрирован: Пт 25 янв 2019 11:21

Разное время выполнения запроса при профилировании и "обычном" выполнении

Сообщение pbabkin » Пт 25 янв 2019 11:27

Здравствуйте! Мне нужна помощь или совет.

Я наблюдаю странную ситуацию при профилировании некоторых запросов и использовании DbForge for Mysql (последняя версия). Например. Я оптимизирую медленный и огромный запрос. Время выполнения запроса, которое отображается в профилировщике, отличается от фактического времени выполнения запроса, который можно получить через f5, в несколько раз. На примере: если я просто запускаю запрос без профилирования, тогда я получаю время результатов около 0,5 с, но если запустить профилировщик для того же запроса, время результата составляет 0,05 с. Почему так?

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

Ясное дело, кэширование запросов отключено директивой sql_no_cache и даже более того - отключено на уровне БД.
Вложения
Снимок.JPG
Снимок.JPG (41.3 КБ) 19687 просмотров

Alexander
Devart Team
Сообщения: 1246
Зарегистрирован: Ср 02 ноя 2011 11:32

Re: Разное время выполнения запроса при профилировании и "обычном" выполнении

Сообщение Alexander » Пт 25 янв 2019 18:19

Время запроса при профилировании - это время, затраченное сервером на этот запрос. А во время "обычного" выполнения входит следующее: обработка запроса приложением, отправка на сервер, ожидание ответа и обработка ответа перед выводом результата. По этому время немного отличается.

pbabkin
Сообщения: 2
Зарегистрирован: Пт 25 янв 2019 11:21

Re: Разное время выполнения запроса при профилировании и "обычном" выполнении

Сообщение pbabkin » Пт 25 янв 2019 19:14

Alexander писал(а): Пт 25 янв 2019 18:19 Время запроса при профилировании - это время, затраченное сервером на этот запрос. А во время "обычного" выполнения входит следующее: обработка запроса приложением, отправка на сервер, ожидание ответа и обработка ответа перед выводом результата. По этому время немного отличается.
@Alexander, спасибо Вам большущее за ответ. С одной стороны, он кажется логичным, а с другой стороны...
Вот был у меня "тяжелый" запрос до оптимизации. Время его выполнения "просто" и через профайлер было одинаковым и составляло, допустим, те же 0.5с. Затем я реструктурировал запрос, подкрутил индексы и прочее. Профайлер говорит - молодец! - теперь время выполнения 0,05с. Но при "обычном" запуске по-прежнему 0.5с.
0.5с - 0,05 = 0,45с. Почему тогда в одном случае издержки практически нулевые, а в другом - 99% общего времени выполнения запроса?

Alexander
Devart Team
Сообщения: 1246
Зарегистрирован: Ср 02 ноя 2011 11:32

Re: Разное время выполнения запроса при профилировании и "обычном" выполнении

Сообщение Alexander » Пн 28 янв 2019 18:00

Не могли бы Вы прислать более конкретные данные (запрос до и после оптимизации), чтобы мы могли это поведение повторить?

Вы можете прислать ответ напрямую в нашу службу поддержки на supportATdevartDOTcom и alexaATdevartDOTcom .

Ответить