From: | Greg Stark <gsstark(at)mit(dot)edu> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: database speed |
Date: | 2003-10-31 04:23:38 |
Message-ID: | 87ptgeavcl.fsf@stark.dyndns.tv |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Chris Stokes" <ChrisS(at)BassSoftware(dot)com> writes:
> I wondered if it might be a row chaining issue of some sort ?!?
Just to address this point:
Row Chaining is how Oracle deals with updates when the new record takes more
space than is available in the original block. Since Oracle does in-place
updates this is a real problem. It has to put a pointer in the first block to
a second overflow block. A busy table in which records often grow and shrink
can become slow because of having to follow all these pointers.
Postgres is very different. Updates in Postgres aren't in-place; every update
in Postgres is a delete and insert. Therefore there's no row-chaining problem,
in fact records can be packed (pctfree 0 pctused 100).
There are analogous problems though. It's easier to keep a heavily updated
table "clean" with postgres's approach but there are still a lot of cases to
consider. The free space can be fragmented (vacuum full can help that), the
data can be very poorly distributed (cluster can help that temporarily).
--
greg
From | Date | Subject | |
---|---|---|---|
Next Message | Alex | 2003-10-31 06:01:21 | DBD::Pg Err / Errstr |
Previous Message | Uwe C. Schroeder | 2003-10-31 03:43:50 | Trigger or Rule ? |