On Wednesday, January 25, 2012 11:24:58 AM UTC+1, Frank Bergemann wrote:
> Hi,
>
> 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)).
Why is it the same for range partitioning?
> 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)?
Hash functions do not have an inverse function because they are not injections.
http://en.wikipedia.org/wiki/Inverse_function
Kind regards
robert