Thread: Database Server is too Slow

Database Server is too Slow

From
"Ing. Gabriel Monsalvo"
Date:
Hi!
I need help, i mounted a Postgresql server on IBM netserver with RAID 5 134 GB, 2.5 GB de RAM and two Xeon 1.4 ghz.
I installed postgresql 7.3 in this box, my database have over 25 millons of records, and everything is slow.
i optimized with indexes,vacuum analyze and tuning up the kernel for shared memory usage.
but the server is too slow when:
    - create index for any table with more than 5 millions
    - vacuum takes over four hours in this type of tables.
    - select max (field) from table where field2=xxxx takes a lot of time. 
 
explain select max(numoble) from obligacion where periodo=200100;
 
QUERY PLAN
 
-------------------------------------------------------------------------------------------------
 
Aggregate (cost=6160676.57..6160676.57 rows=1 width=16)
 
-> Index Scan using obligacion8 on obligacion (cost=0.00..6156384.72 rows=1716743 width=16)
 
Index Cond: (periodo = 200100::numeric)
 
(3 rows)
 
please, i need help about this, i read a lot of documantation for tune up a postgresql server and still having problems.
anybody have a similar problem? how to solve it???
 
thanks in advance.
 
 

Re: Database Server is too Slow

From
Stephan Szabo
Date:
On Fri, 13 Dec 2002, Ing. Gabriel Monsalvo wrote:

> Hi!
> I need help, i mounted a Postgresql server on IBM netserver with RAID 5 134 GB, 2.5 GB de RAM and two Xeon 1.4 ghz.
> I installed postgresql 7.3 in this box, my database have over 25 millons of records, and everything is slow.
> i optimized with indexes,vacuum analyze and tuning up the kernel for shared memory usage.
> but the server is too slow when:
>     - create index for any table with more than 5 millions
>     - vacuum takes over four hours in this type of tables.
>     - select max (field) from table where field2=xxxx takes a lot of time.
>
> explain select max(numoble) from obligacion where periodo=200100;

For this sort of query, I'd suggest trying
select numoble from obligaction where periodo=200100 order by
periodo desc, numoble desc limit 1;
with an index on (periodo, numoble) (I think).  You can see messages about
max and min in the archives for me information.