Re: Insert performance (OT?) - Mailing list pgsql-performance

From Yves Vindevogel
Subject Re: Insert performance (OT?)
Date
Msg-id 3508d984c33d87fd74c90913aaa24c4d@implements.be
Whole thread Raw
In response to Insert performance (OT?)  (Yves Vindevogel <yves.vindevogel@implements.be>)
List pgsql-performance
nobody ?


On 18 Jul 2005, at 21:29, Yves Vindevogel wrote:


<excerpt>Hi,


Suppose I have a table with 4 fields (f1, f2, f3, f4)

I define 2 unique indexes u1 (f1, f2, f3) and u2 (f1, f2, f4)


I have 3 records

A, B, C, D (this will be inserted)

A, B, C, E (this will pass u2, but not u1, thus  not inserted)

A, B, F, D (this will pass u1, but not u2, thus not inserted)


Now, for performance ...


I have tables like this with 500.000 records where there's a new
upload of approx. 20.000 records.

It is only now that we say index u2 to be necessary.  So, until now, I
did something like insert into ... select f1, f2, f2, max(f4) group by
f1, f2, f3

That is ok ... and also logically ok because of the data definition


I cannot do this with 2 group by's.  I tried this on paper and I'm not
succeeding.


So, I must use a function that will check against u1 and u2, and then
insert if it is ok.

I know that such a function is way slower that my insert query.


So, my question ...

How can I keep the same performance, but also with the new index in
mind ???



Met vriendelijke groeten,

Bien à vous,

Kind regards,


<bold>Yves Vindevogel</bold>

<bold>Implements</bold>

<smaller>

</smaller><<Pasted Graphic 2.tiff><smaller>


Mail: yves.vindevogel@implements.be  - Mobile: +32 (478) 80 82 91


Kempische Steenweg 206 - 3500 Hasselt - Tel-Fax: +32 (11) 43 55 76


Web: http://www.implements.be

<italic><x-tad-smaller>

First they ignore you.  Then they laugh at you.  Then they fight you.
Then you win.

Mahatma Ghandi.</x-tad-smaller></italic></smaller></excerpt><excerpt>

---------------------------(end of
broadcast)---------------------------

TIP 5: don't forget to increase your free space map settings


</excerpt>Met vriendelijke groeten,

Bien à vous,

Kind regards,


<bold>Yves Vindevogel</bold>

<bold>Implements</bold>

<smaller>

</smaller>nobody ?

On 18 Jul 2005, at 21:29, Yves Vindevogel wrote:

> Hi,
>
> Suppose I have a table with 4 fields (f1, f2, f3, f4)
> I define 2 unique indexes u1 (f1, f2, f3) and u2 (f1, f2, f4)
>
> I have 3 records
> A, B, C, D (this will be inserted)
> A, B, C, E (this will pass u2, but not u1, thus  not inserted)
> A, B, F, D (this will pass u1, but not u2, thus not inserted)
>
> Now, for performance ...
>
> I have tables like this with 500.000 records where there's a new
> upload of approx. 20.000 records.
> It is only now that we say index u2 to be necessary.  So, until now, I
> did something like insert into ... select f1, f2, f2, max(f4) group by
> f1, f2, f3
> That is ok ... and also logically ok because of the data definition
>
> I cannot do this with 2 group by's.  I tried this on paper and I'm not
> succeeding.
>
> So, I must use a function that will check against u1 and u2, and then
> insert if it is ok.
> I know that such a function is way slower that my insert query.
>
> So, my question ...
> How can I keep the same performance, but also with the new index in
> mind ???
>
>
> Met vriendelijke groeten,
> Bien à vous,
> Kind regards,
>
> Yves Vindevogel
> Implements
>
> <Pasted Graphic 2.tiff>
>
> Mail: yves.vindevogel@implements.be  - Mobile: +32 (478) 80 82 91
>
> Kempische Steenweg 206 - 3500 Hasselt - Tel-Fax: +32 (11) 43 55 76
>
> Web: http://www.implements.be
>
> First they ignore you.  Then they laugh at you.  Then they fight you.
> Then you win.
> Mahatma Ghandi.
> ---------------------------(end of
> broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>
Met vriendelijke groeten,
Bien à vous,
Kind regards,

Yves Vindevogel
Implements

<smaller>


Mail: yves.vindevogel@implements.be  - Mobile: +32 (478) 80 82 91


Kempische Steenweg 206 - 3500 Hasselt - Tel-Fax: +32 (11) 43 55 76


Web: http://www.implements.be

<italic><x-tad-smaller>

First they ignore you.  Then they laugh at you.  Then they fight you.
Then you win.

Mahatma Ghandi.</x-tad-smaller></italic></smaller>



Mail: yves.vindevogel@implements.be  - Mobile: +32 (478) 80 82 91

Kempische Steenweg 206 - 3500 Hasselt - Tel-Fax: +32 (11) 43 55 76

Web: http://www.implements.be

First they ignore you.  Then they laugh at you.  Then they fight you.
Then you win.
Mahatma Ghandi.

Attachment

pgsql-performance by date:

Previous
From: Christopher Petrilli
Date:
Subject: Re: Impact of checkpoint_segments under continual load conditions
Next
From: Richard Huxton
Date:
Subject: Re: Insert performance (OT?)