Re: Performance delay

From: Richard Huxton <dev(at)archonet(dot)com>
To: Hasnul Fadhly bin Hasan <hasnulfadhly(dot)h(at)mimos(dot)my>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Performance delay
Date: 2005-01-13 11:02:04
Message-ID: 41E6552C.3020801@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hasnul Fadhly bin Hasan wrote:
> Hi,
>
> just want to share with all of you a wierd thing that i found when i
> tested it.
>
> i was doing a query that will call a function long2ip to convert bigint
> to ips.
>
> so the query looks something like this.
>
> select id, long2ip(srcip), long2ip(dstip) from sometable
> where timestamp between timestamp '01-10-2005' and timestamp '01-10-2005
> 23:59' order by id limit 30;
>
> for your info, there are about 300k rows for that timeframe.
>
> it cost me about 57+ secs to get the list.
>
> which is about the same if i query
> select id, long2ip(srcip), long2ip(dstip) from sometable
> where timestamp between timestamp '01-10-2005' and timestamp '01-10-2005
> 23:59'
>
> it will cost me about 57+ secs also.
>
> Now if i did this
> select id,long2ip(srcip), long2ip(dstip) from (
> * from sometable
> where timestamp between timestamp '01-10-2005' and timestamp '01-10-2005
> 23:59' order by id limit 30) as t;
>
> it will cost me about 3+ secs

The difference will be that in the final case you only make 30 calls to
long2ip() whereas in the first two you call it 300,000 times and then
throw away most of them.
Try running EXPLAIN ANALYSE ... for both - that will show how PG is
planning the query.
--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Hasnul Fadhly bin Hasan 2005-01-13 11:14:10 Re: Performance delay
Previous Message Mark Kirkwood 2005-01-13 09:02:15 Re: Postgres Optimizer is not smart enough?