Re: Re: low performance

From: Andreas Wernitznig <andreas(at)insilico(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Re: low performance
Date: 2001-09-03 18:53:52
Message-ID: 20010903205352.3829a7db.andreas@insilico.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Yes, I understand very clearly what you mean.

Maybe my mails were to confused, that's why I try to explain my problem once more:

step 1. An empty table with a primary key (=index key) where an "explain" tells me, that a Seq Scan is used to SELECT a special row.
step 2. Then I start to fill data into that table.
step 3. Then I run a vacuum analyze to update the planner statistics.
step 4. I run an "EXPLAIN select * from <mytable> where <pk-column> = 999;"
step 5. Then I fill in additional data.

What I expect is, that from step 5 on the pk-trigger (I don't know if this mechanism that checks for uniqueness is really a trigger) uses the Index to check for possible double entries.
Although "EXPLAIN" in step 4 pretend to use an Index Scan the data insert becomes slower and slower (>98% of the processor is used by a postmaster). All these steps are done with a single connection (postmaster).

The only way to make it faster after step 3 is to close that connection (and stop that postmaster thread with it) and establish a new one.
It seems like the planner (at least for pk checking) of an *established* connection to a database doesn't receive the information gained from "vacuum analyze".

Greetings
Andreas

On Mon, 03 Sep 2001 12:26:39 -0400
Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Andreas Wernitznig <andreas(at)insilico(dot)com> writes:
> > To make it more comparable I have made two additional runs, a slow and
> > a fast one with exactly the same number of inserts (about 20500) and
> > put it on our ftp server:
>
> >> However, I think what is happening is that some queries are being done
> >> as indexscans in the fast case and seqscans in the slow case. The
> >> ratio of ExecIndexScan calls to ExecSeqScan calls is vastly different
> >> in the two profiles.
>
> > Does the new profiles proof that assumption ?
>
> Yes, see for yourself:
> def.fast:
> 0.00 0.00 0.00 22481 0.00 0.00 ExecSeqScan
> 0.00 0.00 0.00 20161 0.00 0.00 ExecIndexScan
> def.slow:
> 0.00 0.01 0.00 41940 0.00 0.00 ExecSeqScan
> 0.00 0.01 0.00 702 0.00 0.00 ExecIndexScan
>
> So there are about 19500 queries that are being done as indexscans in
> one case and seqscans in the other.
>
> > If I run "vacuum" and "vacuum analyze" on an empty database, the
> > following run will be a SLOW one.
>
> The whole point of vacuum analyze is to give the planner some statistics
> about the contents of the tables. Vacuum analyze when a table is empty
> is useless (even counterproductive, if the table shortly thereafter
> becomes large --- the planner will still think it is empty).
>
> regards, tom lane
>

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message johan27 2001-09-03 19:03:38 BIG PROBLEM:fatal 1:set user id user admin is not in eg shadow
Previous Message Tom Lane 2001-09-03 18:04:10 Re: postmaster quits