From: | "soni de" <soni(dot)de(at)gmail(dot)com> |
---|---|
To: | "Merlin Moncure" <mmoncure(at)gmail(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Takes too long to fetch the data from database |
Date: | 2006-04-21 04:42:24 |
Message-ID: | 9f2e40a90604202142x5adbe6f0r7a993f8319619cc7@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
I don't want to query exactly 81900 rows into set. I just want to fetch 50
or 100 rows at a time in a decreasing order of stime.(i.e 50 or 100 rows
starting from last to end).
if we fetched sequentially, there is also problem in fetching all the
records (select * from wan where kname='pluto' order by stime) it is taking
more than 4~5 minutes. tried it on same table having more than 326054
records.
On 4/20/06, Merlin Moncure <mmoncure(at)gmail(dot)com> wrote:
>
> > SELECT * FROM wan ORDER BY stime LIMIT 50 OFFSET 81900;
>
> you need to try and solve the problem without using 'offset'. you could
> do:
> BEGIN;
> DECLARE crs cursor FOR SELECT * FROM wan ORDER BY stime;
> FETCH ABSOLUTE 81900 in crs;
> FETCH 49 in crs;
> CLOSE crs;
> COMMIT;
>
> this may be a bit faster but will not solve the fundamental problem.
>
> the more interesting question is why you want to query exactly 81900
> rows into a set. This type of thinking will always get you into
> trouble, absolute positioning will not really work in a true sql
> sense. if you are browsing a table sequentially, there are much
> better methods.
>
> merlin
>
From | Date | Subject | |
---|---|---|---|
Next Message | Milen Kulev | 2006-04-21 05:22:24 | Re: Quick Performance Poll |
Previous Message | Jim C. Nasby | 2006-04-21 04:31:47 | Re: Introducing a new linux readahead framework |