| From: | Mike Blackwell <mike(dot)blackwell(at)rrd(dot)com> |
|---|---|
| To: | |
| Cc: | "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
| Subject: | Re: Savepoints in transactions for speed? |
| Date: | 2012-11-29 18:14:20 |
| Message-ID: | CANPAkgutXZHmkPQ0ungdFixT6Nqc88c9cE=yNiwHPNag+JUHEA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
On Thu, Nov 29, 2012 at 12:09 PM, Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:
>
> But If you do keep the drop index inside the transaction, then you
> would probably be better off using truncate rather than delete, and
> rebuild the index non-concurrently and move that inside the
> transaction as well.
>
>
Hmm.... From the 9.2 manual it seems that might not work out so well:
TRUNCATE is not MVCC-safe (see Chapter
13<http://www.postgresql.org/docs/9.2/static/mvcc.html> for
general information about MVCC). After truncation, the table will appear
empty to all concurrent transactions, even if they are using a snapshot
taken before the truncation occurred.
It looks like other transactions could find an empty table while it was
being reloaded under that approach.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jeff Davis | 2012-11-29 18:32:22 | Re: Savepoints in transactions for speed? |
| Previous Message | Jeff Janes | 2012-11-29 18:09:19 | Re: Savepoints in transactions for speed? |