Re: create table in memory

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

In response to

Responses

Browse pgsql-general by date

  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