| From: | Artiom Makarov <artiom(dot)makarov(at)gmail(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | pgsql-performance(at)postgresql(dot)org |
| Subject: | Re: temp table "on commit delete rows": transaction overhead |
| Date: | 2010-03-31 07:42:29 |
| Message-ID: | w2ud448ea361003310042t91d5f283pb3daccbe19dfcb7@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
2010/3/30 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> I don't recall any operations at transaction start for such tables,
> but there may be some.
>
Both in СommitTransaction(void) and PrepareTransaction(void) we can
see PreCommit_on_commit_actions() call;
Here PreCommit_on_commit_actions()
<CUT>
case ONCOMMIT_DELETE_ROWS:
oids_to_truncate = lappend_oid(oids_to_truncate, oc->relid);
break;
<CUT>
As a my opinion, the same action taked place at transaction start and commit.
To truncate rows of any temp tables, both changed and unchanged(!)
after transaction looks as little reinsurance. Well.
But why do the same action _before_ any transaction?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Matthew Wakeling | 2010-03-31 09:29:58 | Re: experiments in query optimization |
| Previous Message | David Wilson | 2010-03-31 04:37:40 | Re: query has huge variance in execution times |