Re: query speed depends on lifetime of frozen db? - Mailing list pgsql-general

From Martijn van Oosterhout
Subject Re: query speed depends on lifetime of frozen db?
Date
Msg-id 20020928121301.GB29389@svana.org
Whole thread Raw
In response to query speed depends on lifetime of frozen db?  (Andriy Tkachuk <ant@imt.com.ua>)
Responses Re: query speed depends on lifetime of frozen db?.. Sorry  (Andriy Tkachuk <ant@imt.com.ua>)
List pgsql-general
Ok. Please send stuff like this to the list, that's what it's there for.

Secondly, I have no idea why this is happening, you'll have to find someone
else who knows...

On Sat, Sep 28, 2002 at 02:02:19PM +0300, Andriy Tkachuk wrote:
> > what does:
> >
> > EXPLAIN ANALYZE calc_account (u.uid, 1030827600);
> >
> > do when the big query is both fast and when it's slow. I reackon that
> > function is where the time is taken.
>
> Guys, there are many interesting things:
>
> 1: (db is clean: just restored from dump)
>
> calc_account have such query:
>
> bb=# EXPLAIN ANALYZE select sum(cost) as cost from bills b,users u where u.parent= 12608 and b.dat between 0 and
1030827600and b.uid = u.uid; 
> NOTICE:  QUERY PLAN:
>
> Aggregate  (cost=84.54..84.54 rows=1 width=12) (actual time=0.96..0.96 rows=1 loops=1)
>   ->  Nested Loop  (cost=0.00..84.51 rows=13 width=12) (actual time=0.94..0.94 rows=0 loops=1)
>         ->  Seq Scan on users u  (cost=0.00..22.50 rows=5 width=4) (actual time=0.93..0.93 rows=0 loops=1)
>         ->  Index Scan using bill_uid on bills b  (cost=0.00..12.37 rows=3 width=8)
> Total runtime: 1.13 msec
>
> EXPLAIN
> bb=# ANALYZE bills;
> ANALYZE
> bb=# EXPLAIN ANALYZE select sum(cost) as cost from bills b,users u where u.parent= 12608 and b.dat between 0 and
1030827600and b.uid = u.uid; 
> NOTICE:  QUERY PLAN:
>
> Aggregate  (cost=3391.67..3391.67 rows=1 width=12) (actual time=2033.08..2033.09 rows=1 loops=1)
>   ->  Hash Join  (cost=22.51..3386.47 rows=2079 width=12) (actual time=2033.06..2033.06 rows=0 loops=1)
>         ->  Seq Scan on bills b  (cost=0.00..2922.07 rows=83177 width=8) (actual time=0.10..1446.82 rows=87125
loops=1)
>         ->  Hash  (cost=22.50..22.50 rows=5 width=4) (actual time=1.87..1.87 rows=0 loops=1)
>               ->  Seq Scan on users u  (cost=0.00..22.50 rows=5 width=4) (actual time=1.85..1.85 rows=0 loops=1)
> Total runtime: 2033.25 msec
>
> EXPLAIN
>
> WOW!!!
>
> BUT!
> 2. (again after dropping & restoring db)
>
> bb=# EXPLAIN ANALYZE SELECT calc_account(12608, 1030827600);
> NOTICE:  QUERY PLAN:
>
> Result  (cost=0.00..0.01 rows=1 width=0) (actual time=251.83..251.83 rows=1 loops=1)
> Total runtime: 251.89 msec
>
> EXPLAIN
> bb=# ANALYZE bills;
> ANALYZE
> bb=# EXPLAIN ANALYZE SELECT calc_account(12608, 1030827600);
> NOTICE:  QUERY PLAN:
>
> Result  (cost=0.00..0.01 rows=1 width=0) (actual time=284.00..284.01 rows=1 loops=1)
> Total runtime: 284.14 msec
>
> EXPLAIN
>
>
> and just after ANALYZING bills the main query still performs fast.
>
> bb=# ANALYZE users;
> ANALYZE
> bb=# EXPLAIN ANALYZE SELECT calc_account(12608, 1030827600);
> NOTICE:  QUERY PLAN:
>
> Result  (cost=0.00..0.01 rows=1 width=0) (actual time=199.52..199.53 rows=1 loops=1)
> Total runtime: 199.58 msec
>
> EXPLAIN
>
>
> and now the main query overloads.
>

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> There are 10 kinds of people in the world, those that can do binary
> arithmetic and those that can't.

pgsql-general by date:

Previous
From: Maarten.Boekhold@reuters.com
Date:
Subject: Re: [JDBC] Prepared statement performance...
Next
From: Andriy Tkachuk
Date:
Subject: Re: query speed depends on lifetime of frozen db?.. Sorry