From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | Matheus de Oliveira <matioli(dot)matheus(at)gmail(dot)com> |
Cc: | pgsql-performance <pgsql-performance(at)postgresql(dot)org>, Charles Gomes <charlesrg(at)outlook(dot)com> |
Subject: | Re: Partition insert trigger using C language |
Date: | 2013-01-10 19:22:25 |
Message-ID: | 50EF14F1.5070901@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On 10.01.2013 21:11, Matheus de Oliveira wrote:
> On Thu, Jan 10, 2013 at 4:54 PM, Heikki Linnakangas<hlinnakangas(at)vmware(dot)com
>> wrote:
>
>> The right way to do this with SPI is to prepare each insert-statement on
>> first invocation (SPI_prepare + SPI_keepplan), and reuse the plan after
>> that (SPI_execute_with_args).
>>
>> If you construct and plan the query on every invocation, it's not
>> surprising that it's no different from PL/pgSQL performance.
>
> Yeah. I thought about that, but the problem was that I assumed the INSERTs
> came with random date, so in the worst scenario I would have to keep the
> plans of all of the child partitions. Am I wrong?
>
> But thinking better, even with hundreds of partitions, it wouldn't use to
> much memory/resource, would it?
Right, a few hundred saved plans would probably still be ok. And if that
ever becomes a problem, you could keep the plans in a LRU list and only
keep the last 100 plans or so.
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Matheus de Oliveira | 2013-01-10 19:48:15 | Re: Partition insert trigger using C language |
Previous Message | Pavel Stehule | 2013-01-10 19:14:58 | Re: Partition insert trigger using C language |