10g: parallel pipelined table func - compensating hash() function for parallel_enable clause

From: Frank Bergemann <FBergemann_at_web.de>
Date: Wed, 25 Jan 2012 02:24:58 -0800 (PST)
Message-ID: <c1428c6b-68a2-41aa-aa30-f2a80ba203a5_at_z31g2000vbt.googlegroups.com>


How can i compensate the oracle hash function for

   parallel_enable(partition myCursor by hash(Some_Key))

Because Some_Key is already a good ID to dispatch to the table functions.
For a bulk i have e.g. #10 Some_Key values with nearly the same #number of records per Some_Key value.
This means a balanced load distribution to the parallel pipelined table function instances.
However oracle requiring hash(Some_Key) undermines the load balancing (the same for range(Some_Key)).

So i would like to translate Some_Key to a value, that after hash(Some_Key) results in ID (Some_Key) used for dispatch - some kind of anti-hash.

So functionally speaking it ends up in

   parallel_enable(partition myCursor by hash(antihash(Some_Key)))

... which effectively is

   parallel_enable(partition myCursor by SomeKey)

What's the anti-hash (inverse) function, which compensates for hash(Some_Key)?

  • many thanks!

Frank Received on Wed Jan 25 2012 - 04:24:58 CST

Original text of this message