Re: About partitioning

From: Adrian von Bidder <avbidder(at)fortytwo(dot)ch>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: About partitioning
Date: 2010-01-20 16:01:20
Message-ID: 201001201701.25689@fortytwo.ch
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

On Wednesday 20 January 2010 11.57:37 Vincenzo Romano wrote:
> 2010/1/20 Adrian von Bidder <avbidder(at)fortytwo(dot)ch>:

> > [ creating db partitions on demand ]
> >
> > On Wednesday 20 January 2010 11.20:21 Vincenzo Romano wrote:
> >> In case 1 I need to inspect the catalog with at least a select, while
> >> in case 2 I need to trap errors.
> >> In my (little) experience trapping errors is slow, so I would go for
> >> option 1.
> >
> > Trapping/handling the error might be slow, but remember that creating a
> > new partition (presumably) doesn't happen often (and creating the
> > partition is slow anyway.)

> Hmmm ... also trapping would happen for every single line being inserted

Why?

By "trapping" I mean: reacting to the error if the INSERT statement fails.
If the INSERT does not fail, there is no error, so there is no error
condition to handle.

Compare:

* query server to see if partition exists
(!!! slow: this uses the database server)
* if partition does not exist (this is almost never the case), create it
* insert row

Against:

* try inserting (same speed as the final step above)
* if (error)
(this is fast, since it only uses the return value from the insert. No
additional database action)
-> then create partition (this, again, is slow but almost never happens)
-> and then re-try the insert.

cheers
-- vbi

--
featured link: Debian Bookmark Collection - http://bookmarks.debian.net/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Vincenzo Romano 2010-01-20 16:14:18 Re: About partitioning
Previous Message Andreas Kretschmer 2010-01-20 15:59:57 Re: function to grant select on all tables in several schemas