assignment vs SELECT INTO - Mailing list pgsql-performance

From Andrew Dunstan
Subject assignment vs SELECT INTO
Date
Msg-id 5457DECE.3070302@dunslane.net
Whole thread Raw
Responses Re: assignment vs SELECT INTO
Re: assignment vs SELECT INTO
List pgsql-performance
I found out today that direct assignment to a composite type is (at
least in my test) about 70% faster than setting it via SELECT INTO. That
seems like an enormous difference in speed, which I haven't really been
able to account for.

Test case:

    andrew=# \d abc
           Table "public.abc"
      Column |  Type   | Modifiers
    --------+---------+-----------
      x      | text    |
      y      | text    |
      z      | integer |
    andrew=# do $x$ declare r abc; begin for i in 1 .. 10000000 loop
    select 'a','b',i into r.x,r.y,r.z; end loop; end; $x$;
    DO
    Time: 63731.434 ms
    andrew=# do $x$ declare r abc; begin for i in 1 .. 10000000 loop r
    := ('a','b',i); end loop; end; $x$;
    DO
    Time: 18744.151 ms


Is it simply because the SELECT is in effect three assignments, so it
takes nearly 3 times as long?

cheers

andrew


pgsql-performance by date:

Previous
From: Felipe Santos
Date:
Subject: Re: Replication Lag Causes
Next
From: Tom Lane
Date:
Subject: Re: assignment vs SELECT INTO