Re: SELECT MIN, MAX took longer time than SELECT COUNT, MIN, MAX

From: "Jim C(dot) Nasby" <jnasby(at)pervasive(dot)com>
To: K C Lau <kclau60(at)netvigator(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: SELECT MIN, MAX took longer time than SELECT COUNT, MIN, MAX
Date: 2006-01-20 17:20:26
Message-ID: 20060120172026.GF20182@pervasive.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Fri, Jan 20, 2006 at 12:35:36PM +0800, K C Lau wrote:

Here's the problem... the estimate for the backwards index scan is *way*
off:

> -> Limit (cost=0.00..1.26 rows=1 width=4) (actual
> time=200032.928..200032.931 rows=1 loops=1)
> -> Index Scan Backward using pk_log on
> log (cost=0.00..108047.11 rows=86089 width=4) (actual
> time=200032.920..200032.920 rows=1 loops=1)
> Filter: (((create_time)::text < '2005/10/19'::text) AND
> (logsn IS NOT NULL))
> Total runtime: 200051.701 ms

BTW, these queries below are meaningless; they are not equivalent to
min(logsn).

> esdt=> explain analyze select LogSN from Log where create_time <
> '2005/10/19' order by create_time limit 1;
>
> Limit (cost=0.00..0.98 rows=1 width=31) (actual time=0.071..0.073 rows=1
> loops=1)
> -> Index Scan using idx_logtime on log (cost=0.00..84649.94
> rows=86089 width=31) (actual time=0.063..0.063 rows=1 loops=1)
> Index Cond: ((create_time)::text < '2005/10/19'::text)
> Total runtime: 0.182 ms
>
> esdt=> explain analyze select LogSN from Log where create_time <
> '2005/10/19' order by create_time desc limit 1;
> Limit (cost=0.00..0.98 rows=1 width=31) (actual time=0.058..0.061 rows=1
> loops=1)
> -> Index Scan Backward using idx_logtime on log (cost=0.00..84649.94
> rows=86089 width=31) (actual time=0.051..0.051 rows=1 loops=1)
> Index Cond: ((create_time)::text < '2005/10/19'::text)
> Total runtime: 0.186 ms
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>

--
Jim C. Nasby, Sr. Engineering Consultant jnasby(at)pervasive(dot)com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Joshua D. Drake 2006-01-20 17:31:14 Re: Autovacuum / full vacuum (off-topic?)
Previous Message Tom Lane 2006-01-20 17:14:35 Re: Creation of tsearch2 index is very slow