pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: stark <stark@enterprisedb.com>
To: pgsql-patches@postgresql.org
Subject: Trivial patch to double vacuum speed on tables with no indexes
Date: Sun, 27 Aug 2006 15:10:14 +0100
Message-ID: <877j0umfqx.fsf@enterprisedb.com> (raw)


There isn't really any need for the second pass in lazy vacuum if the table
has no indexes. The patch seems almost too easy but of course nothing having
to do with vacuum is as easy as it appears. Perhaps there are some gotchas I
haven't thought of?



inline patch 1: src/backend/commands/vacuumlazy.c (+9/-0 lines) download inline-1.patchIndex: src/backend/commands/vacuumlazy.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v retrieving revision 1.76 diff -c -r1.76 vacuumlazy.c *** src/backend/commands/vacuumlazy.c 31 Jul 2006 20:09:00 -0000 1.76 --- src/backend/commands/vacuumlazy.c 27 Aug 2006 14:06:10 -0000 *************** *** 450,455 **** --- 450,464 ---- { lazy_record_free_space(vacrelstats, blkno, PageGetFreeSpace(page)); + } else if (!nindexes) { + /* If there are no indexes we can vacuum the page right now instead + * of doing a second scan */ + + LockBuffer(buf, BUFFER_LOCK_UNLOCK); + LockBufferForCleanup(buf); + lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats); + lazy_record_free_space(vacrelstats, blkno, PageGetFreeSpace(BufferGetPage(buf))); + vacrelstats->num_dead_tuples = 0; } /* Remember the location of the last page with nonremovable tuples */
-- Gregory Stark EnterpriseDB http://www.enterprisedb.com

view thread (9+ messages)  latest in thread

Message-ID: <877j0umfqx.fsf@enterprisedb.com>
Permalink:  ../877j0umfqx.fsf@enterprisedb.com/
Also on:    postgresql.org/message-id/877j0umfqx.fsf@enterprisedb.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-hackers@postgresql.org
  Cc: stark@enterprisedb.com, pgsql-patches@postgresql.org
  Subject: Re: Trivial patch to double vacuum speed on tables with no indexes
  In-Reply-To: <877j0umfqx.fsf@enterprisedb.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