View Single Post

   
  #1 (permalink)  
Old 04-18-2008, 10:47 AM
Mike G.
 
Posts: n/a
Default Which is more efficient?

Hi,

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 but the planner doesn't recognize that. When I run option a through the planner I have to highlight each insert separately since the planner stops executing after the first ; it comes across.

Mike

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

Reply With Quote