Re: [pgsql-hackers-win32] Poor Performance for large queries

Поиск
Список
Период
Сортировка
От John Meinel
Тема Re: [pgsql-hackers-win32] Poor Performance for large queries
Дата
Msg-id 415ACD1B.1020003@johnmeinel.com
обсуждение исходный текст
Ответ на Re: [pgsql-hackers-win32] Poor Performance for large queries  (Richard Huxton <dev@archonet.com>)
Список pgsql-performance
Richard Huxton wrote:
> John Meinel wrote:
>
>>
>> So notice that when doing the actual select it is able to do the index
>> query. But for some reason with a prepared statement, it is not able
>> to do it.
>>
>> Any ideas?
>
>
> In the index-using example, PG knows the value you are comparing to. So,
> it can make a better estimate of how many rows will be returned. With
> the prepared/compiled version it has to come up with a plan that makes
> sense for any value.
>
> If you look back at the explain output you'll see PG is guessing 181,923
> rows will match with the prepared query but only 1 for the second query.
> If in fact you returned that many rows, you wouldn't want to use the
> index - it would mean fetching values twice.
>
> The only work-around if you are using plpgsql functions is to use
> EXECUTE to make sure your queries are planned for each value provided.
>
I suppose that make sense. If the number was small (< 100) then there
probably would be a lot of responses. Because the tproject table is all
small integers.

But for a large number, it probably doesn't exist on that table at all.

Thanks for the heads up.

John
=:->

Вложения

В списке pgsql-performance по дате отправления:

Предыдущее
От: "Shea,Dan [CIS]"
Дата:
Сообщение: Re: Interest in perf testing?
Следующее
От: Dirk Lutzebäck
Дата:
Сообщение: why does explain analyze differ so much from estimated explain?