pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Pablo Alcaraz <pabloa@laotraesquina.com.ar>
To: Steven Flatt <steven.flatt@gmail.com>
Cc: pgsql-performance@postgresql.org
Subject: Re: tables with 300+ partitions
Date: Wed, 31 Oct 2007 11:27:42 -0400
Message-ID: <47289EEE.50008@laotraesquina.com.ar> (raw)
In-Reply-To: <357fa7590710301400x3a05796dle6bae219a1a25fc@mail.gmail.com>
References: <47277341.7070704@laotraesquina.com.ar>
	<357fa7590710301400x3a05796dle6bae219a1a25fc@mail.gmail.com>

Steven Flatt wrote:
> On 10/30/07, *Pablo Alcaraz* <pabloa@laotraesquina.com.ar 
> <mailto:pabloa@laotraesquina.com.ar>> wrote:
>
>     I did some testing. I created a 300 partitioned empty table. Then, I
>     inserted some rows on it and the perfomance was SLOW too. 
>
>  
> Is the problem with inserting to the partitioned table or selecting 
> from it?  It sounds like inserting is the problem in which case I ask: 
> how are you redirecting inserts to the appropriate partition?  If 
> you're using rules, then insert performance will quickly degrade with 
> number of partitions as *every* rule needs to be evaluated for *every* 
> row inserted to the base table.  Using a trigger which you can modify 
> according to some schedule is much faster, or better yet, use some 
> application-level logic to insert directly to the desired partition.
>  
> Steve
I was a program inserting into the base table. The program ran in 200+ 
threads and every thread insert data on it. Every thread inserts a row 
every 3 seconds aprox.(or they used to do it), but when I put more 
partitions the insert speed went to 1 insert every 2 minutes.

The selects that need to evaluate all partitions were slow too, but I 
think I can wait for them. :D

I wonder if the update are slow too. I do not know that.

Do I need to do a trigger for insert only or I need a trigger to update 
and delete too?

To modify the appilication logic for this is not an options because they 
need to open the program, modify it and retest. All because an 
implementation problem. I prefer to try to solve it at the database 
level because the database need this table partitioned.

Thanks for your help

Regards.

Pablo
>  

view thread (8+ messages)  latest in thread

Message-ID: <47289EEE.50008@laotraesquina.com.ar>
Permalink:  ../47289EEE.50008@laotraesquina.com.ar/
Also on:    postgresql.org/message-id/47289EEE.50008@laotraesquina.com.ar

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: pabloa@laotraesquina.com.ar, steven.flatt@gmail.com
  Subject: Re: tables with 300+ partitions
  In-Reply-To: <47289EEE.50008@laotraesquina.com.ar>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox