Thread: Performance issues when the number of records are around 10 Million

Performance issues when the number of records are around 10 Million

From
venu madhav
Date:
Hi all,<br />       In my database application, I've a table whose records can reach 10M and insertions can happen at a
fasterrate like 100 insertions per second in the peak times. I configured postgres to do auto vacuum on hourly basis. I
havefrontend GUI application in CGI which displays the data from the database. When I try to get the last twenty
recordsfrom the database, it takes around 10-15  mins to complete the operation.This is the query which is used:<br
/><br/><b> select e.cid, timestamp, s.sig_class, s.sig_priority, s.sig_name, e.sniff_ip, e.sniff_channel, s.sig_config,
e.wifi_addr_1,<br/> e.wifi_addr_2, e.view_status, bssid  FROM event e, signature s WHERE s.sig_id = e.signature   AND
e.timestamp>= '1270449180' AND e.timestamp < '1273473180'  ORDER BY e.cid DESC,  e.cid DESC limit 21 offset
10539780;<br/></b><br /> Can any one suggest me a better solution to improve the performance.<br /><br />Please let me
knowif you've any further queries.<br /><br /><br /> Thank you,<br /><font color="#888888">Venu</font> 

Re: Performance issues when the number of records are around 10 Million

From
Guillaume Lelarge
Date:
Le 11/05/2010 08:34, venu madhav a écrit :
> Hi all,
>       In my database application, I've a table whose records can reach 10M
> and insertions can happen at a faster rate like 100 insertions per second in
> the peak times. I configured postgres to do auto vacuum on hourly basis. I
> have frontend GUI application in CGI which displays the data from the
> database. When I try to get the last twenty records from the database, it
> takes around 10-15  mins to complete the operation.This is the query which
> is used:
> 
> * select e.cid, timestamp, s.sig_class, s.sig_priority, s.sig_name,
> e.sniff_ip, e.sniff_channel, s.sig_config, e.wifi_addr_1,
> e.wifi_addr_2, e.view_status, bssid  FROM event e, signature s WHERE
> s.sig_id = e.signature   AND e.timestamp >= '1270449180' AND e.timestamp <
> '1273473180'  ORDER BY e.cid DESC,  e.cid DESC limit 21 offset 10539780;
> *
> Can any one suggest me a better solution to improve the performance.
> 

You're on the wrong mailing list. This mailing list deals with pgAdmin
support.

You would be better to ask this on pgsql-performance for example. Make
sure you send also an EXPLAIN ANALYZE of the query. If you don't, that's
the first thing they will ask for. And last, having an offset this big
is just asking for (performance) trouble.


-- 
Guillaume.http://www.postgresqlfr.orghttp://dalibo.com