| From: | "Mike G(dot)" <mike(at)thegodshalls(dot)com> |
|---|---|
| To: | pgsql-performance(at)postgresql(dot)org |
| Subject: | Which is more efficient? |
| Date: | 2004-12-17 18:52:01 |
| Message-ID: | 20041217185201.GA13389@localhost.localdomain |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2004-12-17 19:46:57 | Re: Error in VACUUM FULL VERBOSE ANALYZE (not enough memory) |
| Previous Message | Josh Berkus | 2004-12-17 18:47:49 | Re: Error in VACUUM FULL VERBOSE ANALYZE (not enough memory) |