Re: LIMIT question
От | Tom Lane |
---|---|
Тема | Re: LIMIT question |
Дата | |
Msg-id | 10784.1219180916@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: LIMIT question ("Richard Broersma" <richard.broersma@gmail.com>) |
Список | pgsql-sql |
"Richard Broersma" <richard.broersma@gmail.com> writes: > <Peter.M.Rothermel@boeing.com> wrote: >> Is there a better way to accomplish this goal? > Here is a nice discussion on the alternatives open to you: > http://www.commandprompt.com/blogs/joshua_drake/2007/08/how_many_rows_do_i_have_anyway/ That doesn't really address the question of how to estimate the number of rows in a *query* (as opposed to a table). The usual advice is to do an EXPLAIN and extract the first line's rowcount estimate. Of course you have to realize that this is often far from reality --- but in the context the OP gave, maybe a ballpark estimate is good enough. If you really need an exact count, and are willing to pay for it, the standard way is begin;declare c cursor for <<query>> ;move forward all in c; -- note the returned rowcountmove backward all in c; -- this,at least, is cheapfetch 1000 from c;commit; The only thing this saves over just doing the full query is that you don't have to transmit all the data to the client. Still, that can be an important savings. regards, tom lane
В списке pgsql-sql по дате отправления: