Обсуждение: Efficiency of CREATE TABLE AS

Поиск
Список
Период
Сортировка

Efficiency of CREATE TABLE AS

От
Brian Herlihy
Дата:
Hi,

If I do the following

CREATE TABLE foo AS SELECT * FROM bar

and a sequential scan is chosen as the plan (in particular, no ordering required), will the rows be written directly
intothe new table?  I am concerned about the case where there may be many gigabytes of data being copied between these
twotables.  And my precise concern is that the data may be stored temporarily before being placed in the new table,
slowingthings down. 

Thanks,
Brian



Re: Efficiency of CREATE TABLE AS

От
Tom Lane
Дата:
Brian Herlihy <btherl@yahoo.com.au> writes:
> If I do the following
> CREATE TABLE foo AS SELECT * FROM bar
> and a sequential scan is chosen as the plan (in particular, no
> ordering required), will the rows be written directly into the new
> table?

Yes ... actually, the plan has nothing to do with it.

> I am concerned about the case where there may be many
> gigabytes of data being copied between these two tables.  And my
> precise concern is that the data may be stored temporarily before
> being placed in the new table, slowing things down.

No.  The computed tuples go to the new table, noplace else.  See
intorel_receive() and related code.

            regards, tom lane