public inbox for [email protected]  
help / color / mirror / Atom feed
From: Tom Lane <[email protected]>
To: Peter Eisentraut <[email protected]>
Cc: Devrim GÜNDÜZ <[email protected]>
Cc: pgsql-docs <[email protected]>
Subject: Re: Doc patch for truncate.sgml
Date: Thu, 28 Aug 2008 14:20:27 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>

Peter Eisentraut <[email protected]> writes:
> Devrim GÜNDÜZ wrote:
>> !    <command>TRUNCATE</command> rewrites system catalogue entries for
>> !    that table, which makes running <command>ANALYZE</command> on a
>> !    freshly-truncated table is a bad idea, because the statistics will be
>> !    updated to indicate that the table is truly empty.

> If the table is in fact empty, why is it a bad idea to let the 
> statistics reflect that?

I think that this thinking is at least partially obsolete now that
autovacuum/autoanalyze and plan invalidation are in place.  It used to
be that if you truncated a table and then filled it again, any cached
plans that were made while the table was really small would tend to
suck when used with the re-filled table.  But now, autovac will launch
(at least) an ANALYZE against any table that's grown materially, and the
commit of the new analyze stats will result in invalidating any cached
plans.  So the system should be capable of auto-tuning its plans to
changes in table size ... not instantaneously of course, but then you
can't fill a big table instantaneously either.

			regards, tom lane



view thread (4+ messages)  latest in thread

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: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Doc patch for truncate.sgml
  In-Reply-To: <[email protected]>

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

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