Thank you for a good workaround.

Even BETTER would be to fix the aggregates so workarounds wouldn't have to
be found.

Thanks again,

L.
On Fri, 13 Dec 2002, Josh Berkus wrote:

> 
> 
> ----------  Forwarded Message  ----------
> 
> Subject: Re: [PERFORM] Odd Sort/Limit/Max Problem
> Date: Fri, 13 Dec 2002 12:10:20 -0800 (PST)
> From: Stephan Szabo <[EMAIL PROTECTED]>
> To: Josh Berkus <[EMAIL PROTECTED]>
> Cc: <[EMAIL PROTECTED]>
> 
> On Fri, 13 Dec 2002, Josh Berkus wrote:
> 
> > First, as expected, a regular aggregate is slow:
> 
> > So we use the workaround standard for PostgreSQL:
> >
> > ... which is fast, but returns NULL, since nulls sort to the bottom!  So we
> > add IS NOT NULL:
> >
> > jwnet=> explain analyze select date_resolved from case_clients where
> > date_resolved is not null order by date_resolved desc limit 1;
> > NOTICE:  QUERY PLAN:
> >
> > Limit  (cost=0.00..4.06 rows=1 width=4) (actual time=219.63..219.64 rows=1
> > loops=1)
> >   ->  Index Scan Backward using idx_caseclients_resolved on case_clients
> > (cost=0.00..163420.59 rows=40272 width=4) (actual time=219.62..219.62 rows=2
> > loops=1)
> > Total runtime: 219.76 msec
> >
> > Aieee!  Almost as slow as the aggregate!
> 
> I'd suggest trying a partial index on date_resolved where date_resolve is
> not null.  In my simple tests on about 200,000 rows of ints where 50% are
> null that sort of index cut the runtime on my machine from 407.66 msec to
> 0.15 msec.
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
> 
> 
> -------------------------------------------------------
> 
> 

-- 
Laurette Cisneros
The Database Group
(510) 420-3137
NextBus Information Systems, Inc.
www.nextbus.com
----------------------------------
There's more to life than just SQL.


---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to