Which is more efficient?

От: Mike G.
Тема: Which is more efficient?
Дата: ,
Msg-id: 20041217185201.GA13389@localhost.localdomain
(см: обсуждение, исходный текст)
Список: pgsql-performance


I have data that I am taking from 2 tables, pulling out specific columns and inserting into one table.

Is it more efficient to do:
a)  insert into x
    select z from y;
    insert into x
    select z from a;

b)  insert into x
    select z from y
    union all
    select z from a;

I have run both through explain.
a) 650ms
b) 741.57ms

According to the planner option a, select z from y takes 545.93 ms
Under option b select z from y takes 553.34 ms

Shouldn't the time predicted for the select z from y be the same?

I would believe b would be more efficient as the inserts could be done in a batch rather than individual transactions
butthe planner doesn't recognize that.  When I run option a through the planner I have to highlight each insert
separatelysince the planner stops executing after the first ; it comes across. 


В списке pgsql-performance по дате сообщения:

От: "Steinar H. Gunderson"
Сообщение: Re: Seqscan rather than Index
От: Christopher Browne
Сообщение: Re: Which is more efficient?