Doing the same tests from psql gives: 1. ~2.5 seconds for INSERT/VALUES 2. ~10 seconds for prepared statement executes 3. ~15 seconds for multiple INSERTs
Dan. On Thu, May 10, 2012 at 3:42 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Alban Hertroys <haram...@gmail.com> writes: > > On 10 May 2012 15:05, Radosław Smogura <rsmog...@softperience.eu> wrote: > >> May I ask what kind of planning may occur during insert? > > > Well, for example, if there's a unique constraint on the table then > > the database will have to check that the newly inserted values don't > > conflict with values that are already in the table. It needs to plan > > an efficient strategy for that, which depends on the values being > > inserted. > > There is no planning associated with checking unique constraints; that's > just a matter for the index mechanisms. > > I think the real point here is that a simple INSERT/VALUES has such a > trivial plan that there is hardly any gain to be had by avoiding the > planning stage. Then the other overhead of a prepared statement > (looking up the saved plan, checking it's not stale, etc) outweighs > that. Or at least it could. 3x slower seems a bit fishy; I wonder > whether there's some client-side inefficiency involved in that. > Doing performance measurements with pgAdmin seems pretty questionable > in the first place ... > > regards, tom lane >