2017-02-16 12 views
0

Если я бегу следующий запрос на PostgreSQL:Поясните Анализировать Разъяснения в PostgreSQL

select * 
from osm_pois_v06 pp 
where pp.geom && ST_MakeEnvelope(8.174,48.298,12.431,50.930,4326); 

я должен ждать 1,34 минут.

Но если я делаю план выполнения (поясните анализ) с упомянутым запросом, то у меня есть следующий вывод:

enter image description here

план говорит мне, что время выполнения 2,624 секунды. Но почему это меньше 1,34 минуты?

+0

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –

ответ

0

Поскольку вы используете pgAdmin для получения набора результатов из более чем 600000 строк.

Известно, что pgAdmin работает медленно при отображении больших наборов результатов. Вам будет лучше с psql.

0

Самый простой способ оценить влияние медленного клиентского программного обеспечения и/или сетевого соединения на выполнение запроса - добавить «создать временную таблицу как» до вашего выбора. Если это работает через 4 секунды и 1:34 без части «создать темп», это безопасная ставка, что узкое место в передаче результирующего набора из БД и обработки его на принимающей стороне.

+1

' объяснить (анализировать) 'делает ** не ** дать оценку. Он сообщает о текущем ** времени выполнения на сервере без передачи данных клиенту. –

+0

О, извините, не знал, что это специфическая вещь Postgres ?. Я удалил последний комментарий об оценке и оставил первую часть о создании temp, что полезно для большинства (если не всех) db-платформ. –

+0

Ну, создание временной таблицы добавляет дополнительные накладные расходы во время выполнения (поскольку данные необходимо написать). И это не обязательно, потому что 'объяснять (анализировать)' даст вам более точную информацию о том, как долго _retrieval_ данных принимает –