Re: SLOOOOOOOW - Mailing list pgsql-general

From Scott Marlowe
Subject Re: SLOOOOOOOW
Date
Msg-id 1126050492.28179.201.camel@state.g2switchworks.com
Whole thread Raw
In response to SLOOOOOOOW  (Jürgen Rose <anykey@gmx.de>)
Responses Re: SLOOOOOOOW
List pgsql-general
On Tue, 2005-09-06 at 16:09, Jürgen Rose wrote:
> Sorry, but I better use this email address, I just hate to use Outlook
> for this stuff.
>
> To Peter Eisentraut
>
> Yes, I've read the chapter in the manual.
>
> To Michael Glaesemann
>
> locally I run the database on my laptop (Dell D800) 1 GB Ram, but there
> within VMWARE with 512MB assigned RAM. But the target platform is a dual
> processor machine with 2 GB.
>
> But, and thats the big but here, I don't care. For me a database has to
> work satisfying in the first place without twiddeling some obscure knobs
> or push levers to get just accaptable performance if I only have a small
> set of data. Heck, I'm talking about maybe in the whole 45.000
> records!!! I mean I used Interbase, MySQL, SQLite, SQLServer before, and
> for this project postgres was set, so I had to use  it. Which is fine, I
> wouldn't mind, if I would not have such troubles.

A couple of points:

1:  You wouldn't buy the QE II (a big luxery liner) and complain that it
doesn't work well for water skiing and is too complex.  It's the QE II.

2:  You've given us absolutely nothing we can go on to help you make
postgresql work better for you.  Nothing.  Just one explain analyze
output.

3:  If you're running one OS on top of another, and then a database on
top of that, and all you've got is 512 Meg of RAM, don't expect stellar
performance, especially from a database that uses shared memory like
postgresql does.

4:  Don't compare PostgreSQL to those other databases unless you're
going to give it a chance.  So far, you haven't done so, you've only
complained.

5:  I have tested a properly tuned PostgreSQL server that was on about
1/2 the hardware (CPU speed, memory, RAID array) as a MSSQL server and
easily out ran it.  But, I took my time, read the docs, and tuned the
server OS and PostgreSQL

6:  Databases may appear simple, they are not, and the more complex they
are, the more you'll have to do to make full use of them.

So, have you been running vacuum and analyze, do you have the right
indexes, are you using queries that can use those indexes, have you
turned up sort_mem and a few other easily tweakable settings.

PostgreSQL's use of shared memory, combined with many older Operating
systems have VERY conservative settings for such, combined further with
the need for PostgreSQL to run on dang near anything, mean that, often,
out of the box, it's not as fast as some other servers.

OTOH, it coexists well with other software. If you've ever tried to
build a MSSQL or ORacle box that did anything else, you know how those
two database engines just consume memory and CPU without really asking.
Here's an explain analyze on one of the production pgsql servers I work
on:

explain analyze select count(*) from sometable
                                                             QUERY
PLAN

-------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=6209.99..6209.99 rows=1 width=0) (actual
time=339.200..339.201 rows=1 loops=1)
   ->  Seq Scan on sometable  (cost=0.00..5856.19 rows=141519 width=0)
(actual time=0.025..202.636 rows=162427 loops=1)
 Total runtime: 339.262 ms
(3 rows)

Admitted, the rows aren't that big, but that's a seq scan of 160,000
rows.  Not bad really.  And it's quite fast at our more esoteric
reporting generation queries as well.

Now, we can sit here and argue about how nice it would be if PostgreSQL
just configured itself for maximum performance on installation, or you
can tell us what runs slow, and let us help you fix it.  The ball is in
your court.

pgsql-general by date:

Previous
From: Ben
Date:
Subject: Re: Basic locking question
Next
From: Michael Fuhr
Date:
Subject: Re: Basic locking question