From: | Craig Ringer <craig(at)2ndQuadrant(dot)com> |
---|---|
To: | Peter Kroon <plakroon(at)gmail(dot)com> |
Cc: | Raghavendra <raghavendra(dot)rao(at)enterprisedb(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: create table in memory |
Date: | 2012-11-24 01:43:15 |
Message-ID: | 50B02633.90700@2ndQuadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 11/24/2012 02:15 AM, Peter Kroon wrote:
> I found out that declaring tables outside of functions increases the
> execution time of the function.
Strictly, what's probably happening is that creating a table in the same
transaction as populating it is a lot faster than creating it,
committing, and populating it in a new transaction. In the 1st case WAL
logging for the heap can be avoided if you aren't using replication or
PITR (ie wal_level is minimal).
Functions are automatically wrapped in a transaction if you don't open
one explicitly so doing a CREATE TABLE inside a function will be
quicker. The same result should be achieved by beginning a transaction,
creating the table, then calling the function.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Edson Richter | 2012-11-24 01:56:56 | Re: Revoke "drop database" even for superusers? |
Previous Message | Tom Lane | 2012-11-23 23:39:01 | Re: Invalid argument |