RE: dramatic slowdown in selects after pg has been runni ng for a while

From: patrick(dot)wolf(at)Aerojet(dot)com (WOLF, PATRICK)
To: "'Joe Slag'" <jslag(at)visi(dot)com>, pgsql-novice(at)postgresql(dot)org
Subject: RE: dramatic slowdown in selects after pg has been runni ng for a while
Date: 2000-07-21 19:36:35
Message-ID: 63A19D0F08E6D211AD740008C7B1C47B02FE1648@APD-MAIL1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Try running vacuum on the table or the database. Here's an excerpt from the
man on vacuum:

Description

VACUUM serves two purposes in Postgres as both a means to reclaim storage
and also a means to collect information for the optimizer.

VACUUM opens every class in the database, cleans out records from rolled
back transactions, and updates statistics in the system
catalogs. The statistics maintained include the number of tuples and number
of pages stored in all classes.

VACUUM ANALYZE collects statistics representing the disbursion of the data
in each column. This information is valuable when several
query execution paths are possible.

Running VACUUM periodically will increase the speed of the database in
processing user queries.

Patrick C. Wolf
Test Manager
Aerojet
Socorro Plant

-----Original Message-----
From: Joe Slag [mailto:jslag(at)visi(dot)com]
Sent: Friday, July 21, 2000 1:05 PM
To: pgsql-novice(at)postgresql(dot)org
Subject: [NOVICE] dramatic slowdown in selects after
pg has been running for a while

I'm evaluating pg for use in my company, and have run into a
bit of a snag.

One of the tests I've been running is a loop of 10,000
"select *
from foo" statements from a perl program, where foo is:

Table "foo"
Attribute | Type | Modifier
-----------+---------+----------
bar | integer |
zag | text |

When I initially ran this test on my workstation (500 mhz
PIII, 128 meg
ram, debian 2.2 w/2.2.16 kernel) the whole process took
around
10 seconds. After getting results from my select test, I
did 10,000
updates (which took an average of 37 seconds), and then
deleted the rows I'd
updated (from psql).

Now, when I rerun the "select" test (against the same data
that was
there before the updates), it takes forever - results have
varied from 300-some seconds to over 700.

To make sure that the whole pg process wasn't screwed up, I
created another
similar table and ran my 10,000 select script against it -
and results are
back down to 10 seconds. So, it seems that somewhere in the
process of
running a bunch of updates to "foo" (and deleteing them)
things have
become screwed up.

What could be slowing selects against this table down, and
how would
I proceed to investigate the matter further? I've been
reading through
the pg docs, and haven't seen much performance monitoring
other than
"explain" (which says exactly the same thing about both the
fast and
slow tables). Is there a log somewhere, or a command that
would further
show me what's going on?

TIA

Joe Slag
Wagpaw, inc.

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message John Burski 2000-07-21 19:38:24 pg_dump problem
Previous Message Alfred Perlstein 2000-07-21 19:23:09 Re: dramatic slowdown in selects after pg has been running for a while