Re: 10g: chaining pipelined functions is slow

From: Randolf Geist <mahrah_at_web.de>
Date: Sun, 10 Oct 2010 05:30:38 -0700 (PDT)
Message-ID: <9a16fab4-2deb-4d54-a3e8-83e099f1d3a4_at_y3g2000vbm.googlegroups.com>



On Oct 10, 10:36 am, Frank Bergemann <FBergem..._at_web.de> wrote:
> However i am still wondering, if oracle sets up separate processing
> instances (what i called 'worker threads') for each stage of the
> chained pipelined functions? (i.e. for each pipelined function)

Correct, as far as I know Oracle doesn't support this kind of processing model out of the box. You can either have the whole chain processed by a serial execution (single thread) or use parallel processing to have the whole chain processed in multiple "partitions" where each process takes care of a part of the whole set - see the images that can be found when following the provided links to the documentation. However you need to understand that the model that you seem to have in mind potentially suffers from the required interprocess  communication that needs to stream the data between the different "worker threads" - the same issue that Oracle has when using its parallel processing model where a similar "producer - consumer" model is possible, however it only supports one producer and consumer set at the same time.

Regards,
Randolf

Oracle related stuff blog:
http://oracle-randolf.blogspot.com/

Co-author of the "OakTable Expert Oracle Practices" book: http://www.apress.com/book/view/1430226684 http://www.amazon.com/Expert-Oracle-Practices-Database-Administration/dp/1430226684 Received on Sun Oct 10 2010 - 07:30:38 CDT

Original text of this message