Re: How many rows if limit wasn't present?

Поиск
Список
Период
Сортировка
От Victor Spång Arthursson
Тема Re: How many rows if limit wasn't present?
Дата
Msg-id 9072F7D6-DA64-4570-9F4B-DA95ADB97C96@tosti.dk
обсуждение исходный текст
Ответ на Re: How many rows if limit wasn't present?  (Richard Huxton <dev@archonet.com>)
Список pgsql-general
13 maj 2005 kl. 14.45 skrev Richard Huxton:

> Richard Huxton wrote:
>
>> Victor Spång Arthursson wrote:
>>
>>> Ciao!
>>>
>>> Is it possible to get the number of rows that would have been
>>> returned if the LIMIT-clause weren't  present in some way after
>>> the  query was run?
>>>
>>> Reason for asking is that I have a really big chunk of SQL,
>>> which  takes time to execute, and whoose result is paginated
>>> using a LIMIT- clause, and to get the actual result (before
>>> pagination) I have to  run the query one more time… Big slow down…
>>>
>> No. Standard procedure here is to select the results to a
>> temporary table, or application-level cache etc.
>>
>
> Just to expand a bit on my own reply - PG will stop processing once
> it hits the LIMIT. Sometimes it still has to gather all the rows
> first (e.g. if you ask for the top 10 selling items this month, it
> needs to calculate all the sales before limiting).
>
> Also - you don't need to cache the full result. Sometimes it might
> make sense to cache just some keys and associated scores and fetch
> descriptive columns later if required.

Figured so my self and changed the code from pg_fetch_all to
pg_fetch_assoc, and then I just fetched the 10 or so I needed…

Speed up with around 60% :D

Now the big question is how to understand the EXPLAIN numbers…

Ciao!

/.v

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

Предыдущее
От: Daniel Schuchardt
Дата:
Сообщение: Re: Delphi 2005, Postgresql, ZEOS & optimistic locking
Следующее
От: cad0022@iperbole.bologna.it
Дата:
Сообщение: pgplsh on postgresql 8.0.2