Re: Drop any statistics of table after it's truncated

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Sawada Masahiko <sawada(dot)mshk(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Drop any statistics of table after it's truncated
Date: 2014-10-14 14:20:15
Message-ID: 31233.1413296415@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Sawada Masahiko <sawada(dot)mshk(at)gmail(dot)com> writes:
> I found that the statistics are still remained after it's truncated.
> In addition, the analyzing ignores table does not have any tuple.
> After table truncated, the entry of statistics continues to remain
> unless insertion and analyzing are executed.
> There is reason why statistics are remained?

Yes, actually, that's intentional. The idea is that once you start
loading data into the table, it's most likely going to look something
like the old data; therefore, the stale statistics are better than
none at all. Eventually auto-ANALYZE will replace the stats,
but until that happens, it seems best to keep using the old stats.
(Of course there are counterexamples to this, but removing the stats
is bad in more cases than not.)

> Attached patch is one line patch adds RemoveStatistics() into
> ExecuteTruncate(), to remove statistics entry of table.

-1, for the reasons explained above.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-10-14 14:25:03 Re: WIP: dynahash replacement for buffer table
Previous Message Andres Freund 2014-10-14 13:58:43 Re: Wait free LW_SHARED acquisition - v0.9