View Single Post

   
  #1 (permalink)  
Old 02-25-2008, 02:50 PM
Jaap W. van Dijk
 
Posts: n/a
Default Why does Oracle buffer the result from the select for a parallel INSERT INTO SELECT FROM?

Hi,

I'm on Oracle 9.2.0.5, Open VMS.

I perform an

INSERT INTO target
SELECT * FROM source

If I do this noparallel, the result from the select is immediately
inserted into the target.

If I do this in parallel, the result of the selects from a slave set
are first buffered in TEMP. After this is done, a slave set starts to
insert the contents from the buffers into the target.

Why this timeconsuming buffering? Can anything be done?

While I am writing this, I wonder: I let Oracle decide which degree of
parallellization to use. Maybe buffering only takes places if the
degree differs between SELECT and INSERT? (I should test myself, but
don't have the opportunity right now).

Regards, Jaap.
Reply With Quote