From: | Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Manuel Kniep <m(dot)kniep(at)web(dot)de> |
Cc: | PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: foreign table batch inserts |
Date: | 2016-05-26 11:25:56 |
Message-ID: | 68df64a5-328f-b571-6d0b-9573280ae931@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2016/05/18 7:08, Michael Paquier wrote:
> On Wed, May 18, 2016 at 6:00 AM, Manuel Kniep <m(dot)kniep(at)web(dot)de> wrote:
>> I realized that inserts into foreign tables are only done row by row.
>> Consider copying data from one local table to a foreign table with
>>
>> INSERT INTO foreign_table(a,b,c) SELECT a,b,c FROM local_table;
>>
>> When the foreign server is for example in another datacenter with long latency,
>> this as an enormous performance trade off.
> I am adding Fujita-san in the loop here, he is
> quite involved with postgres_fdw these days so perhaps he has some
> input to offer.
Honestly, I didn't have any idea for executing such an insert
efficiently, but I was thinking to execute an insert into a foreign
table efficiently, by sending the whole insert to the remote server, if
possible. For example, if the insert is of the form:
INSERT INTO foreign_table(a,b,c) VALUES (1, 2, 3), (4, 5, 6) or
INSERT INTO foreign_table(a,b,c) SELECT a,b,c FROM foreign_table2
where foreign_table and foreign_table2 belong to the same foreign
server, then we could send the whole insert to the remote server.
Wouldn't that make sense?
Best regards,
Etsuro Fujita
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2016-05-26 11:38:31 | Re: [sqlsmith] Failed assertion in parallel worker (ExecInitSubPlan) |
Previous Message | Amit Kapila | 2016-05-26 10:01:36 | Re: [HACKERS] Re: [HACKERS] Re: [HACKERS] Re: [HACKERS] Windows service is not starting so there’s message in log: FATAL: "could not create shared memory segment “Global/PostgreSQL.851401618”: Permission denied” |