pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Richard Huxton <dev@archonet.com>
To: Adrian Moisey <adrian@careerjunction.co.za>
Cc: Bill Moran <wmoran@collaborativefusion.com>
Cc: pgsql-performance@postgresql.org
Subject: Re: db size
Date: Thu, 17 Apr 2008 09:52:31 +0100
Message-ID: <48070FCF.7070102@archonet.com> (raw)
In-Reply-To: <48070DC3.1040709@careerjunction.co.za>
References: <4802F9E4.3000704@careerjunction.co.za>
	<op.t9lf4tvrcigqcu@apollo13.peufeu.com>
	<48032237.4040604@careerjunction.co.za>
	<op.t9lgusticigqcu@apollo13.peufeu.com>
	<4803276C.2090901@careerjunction.co.za>
	<op.t9lh5em8cigqcu@apollo13.peufeu.com>
	<48045A32.3010607@careerjunction.co.za>
	<20080415071222.36b2e8eb.wmoran@collaborativefusion.com>
	<4806EE1A.8010400@careerjunction.co.za>
	<48070708.4060605@archonet.com>
	<48070DC3.1040709@careerjunction.co.za>

Adrian Moisey wrote:
> Hi
> 
>>> INFO:  "blahxxx": scanned 27 of 27 pages, containing 1272 live rows 
>>> and 0 dead rows; 1272 rows in sample, 1272 estimated total rows
>>
>> This is a small table that takes up 27 pages and it scanned all of 
>> them. You have 1272 rows in it and none of them are dead (i.e. 
>> deleted/updated but still taking up space).
> 
> I had a look through a few other tables...:
> 
> INFO:  "table1": scanned 22988 of 22988 pages, containing 2713446 live 
> rows and 895662 dead rows; 45000 rows in sample, 2713446 estimate
> d total rows
> 
> INFO:  "table2": scanned 24600 of 24600 pages, containing 270585 live 
> rows and 65524 dead rows; 45000 rows in sample, 270585 estimated total rows
> 
> Is that dead rows an issue?  Should I try clean it out?  Will it improve 
> performance ?

What you're hoping to see is that figure remain stable. The point of the 
free-space-map is to track these and allow the space to be re-used. If 
you find that the number of dead rows is increasing then either you are:
1. Just deleting rows
2. Not vacuuming enough - check your autovacuum settings

The effect on performance is that when you read in a page from disk 
you're reading dead rows along with the data you are after. Trying to 
keep 0 dead rows in a constantly updated table isn't worth the effort 
though - you'd end up wasting your disk I/O on maintenance rather than 
queries.

The figures above look high to me - 90,000 out of 270,000 and 65,000 out 
of 270,000. Of course, if these tables have just had bulk 
updates/deletes then that's fine. If there's a steady stream of updates 
though, you probably want to up your autovacuum settings.

-- 
   Richard Huxton
   Archonet Ltd



view thread (17+ messages)

Message-ID: <48070FCF.7070102@archonet.com>
Permalink:  ../48070FCF.7070102@archonet.com/
Also on:    postgresql.org/message-id/48070FCF.7070102@archonet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: dev@archonet.com, adrian@careerjunction.co.za, wmoran@collaborativefusion.com
  Subject: Re: db size
  In-Reply-To: <48070FCF.7070102@archonet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox