| 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: | Whole Thread | Raw Message | 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/
| 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 |