Hello Hans,

Am Mittwoch, 6. Oktober 2004 um 09:06 schriebst du:

>> To answer all the other mails now: Yes, it is a very slow box, PII
>> with 300 MHz, 256MB RAM, W2K OS, the harddisk is very old & slow too,
>> the HD Tach test says average 10 MB which is not too bad.

> That would probably explain most of the problems then. With a HDD
> upgrade you can probably atleast double the speed (of DB).

I have now an average of 51 MB with the new hdd.

>> I figured that running the same query on all rows instead of fetching
>> only the first 100 last just few second longer, and when I execute it
>> from a remote host it last only 20 seconds which is still slow, but I
>> can live with that as long as I know that the box is simply too slow
>> to act as a database server at all.  I'll install a faster harddisk
>> now, maybe that helps.

> Ok, could you just for the fun of it try this in front of your query?
> explain analyze
> ex:
> dbmail=# explain ANALYZE select * from messageblks;
>                                                   QUERY PLAN
> ---------------------------------------------------------------------------------------------------------------
>  Seq Scan on messageblks  (cost=0.00..304.92 rows=1792 width=913)
> (actual time=0.015..3.249 rows=1830 loops=1)
>  Total runtime: 4.527 ms
> (2 rows)

> Btw, I ran that from the psql console ('psql dbmail postgres').

dbmail=# explain ANALYZE select * from dbmail_messageblks;
                                                    QUERY PLAN                  
                                  
------------------------------------------------------------------------------------------------------------------
 Seq Scan on dbmail_messageblks  (cost=0.00..0.00 rows=1 width=58) (actual 
time=0.000..190.000 rows=2502 loops=1)
 Total runtime: 280.000 ms
(2 rows)


> That is on a Dual 1Ghz P3, 1gb ram, softraid-1 ide disks running
> linux. So it's clearly a faster box, not enough to warrant SECONDS
> in difference.

> Oh, and btw..  'cost' is _NOT_ the same as predicted 'time'.

> If you run that with a few queries that uses a where clause, you
> can immedeately see wether the db uses the indexes or not.
> And it's also good for simple benchmarking of db schema.

It is an index there, however, I saw that in an Oracle database,
it was not used, though there was an index.

> Another thing I'd look into if I were you is the postgresql.conf
> file. I did some benchmarketing(!) of dbmail with pgsql 7.4 and these
> were the only settings I had to change from default that made a
> positive difference.

> shared_buffers = 15200 # min 16, at least max_connections*2, 8KB each
> sort_mem = 65536       # min 64, size in KB
> vacuum_mem = 65536     # min 1024, size in KB

shared_buffers = 1000           # min 16, at least max_connections*2, 8KB each

the other both seemed to have disappeared from 8.0beta.
I'll try to tweak the settings to use max available resources.


> That requires shared buffers of 122MB. To get that to work in
> linux I added this line to the postgresql start script (in rc.d)
> echo 256000000 > /proc/sys/kernel/shmmax

How do I do this on Windows?

> I realise now that these are more general pgsql tips than spesifics
> to your problem Gerrit, but hopefully you learned something new.


Thanks,
Gerrit
-- 
=^..^=


Reply via email to