Could you provide an example? Fo me: Drop/Creat/populating tables inside a function are slow. Creating tables outside a function and populating he table inside a function is fast..
2012/11/24 Craig Ringer <cr...@2ndquadrant.com> > 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 > >