I don't know if this is the right forum but i'll give it a try.
We have an APEX application and use a pl/sql procedure which is cpu intensive. This process is purely computational. It's takes an custom table array as an argument and performs an optimization process with no further database access. The nature of the optimization process is that it needs to calculate so many combinations that increases exponentially depending on the number of items in the input array.
When a user selects to execute this process the oracle process for this tasks hits 100% cpu usage as long as it takes to complete the optimization. For each other user that decides to execute this process, every oracle process that is created will hit 100% cpu usage, thus degrading the performance on the entire system.
The process itself, needs from 1 second to about 1-2 minutes, for a single user, depending on the amount of input values the table array has. This has nothing to do with optimizing the pl/sql code.
My question, is it possible to execute this process (it doesn't have to be in pl/sql, it could be re-written in another language) on some other server? I don't know if this is correct, but something like a distributed process? The process (algorithm) could be broke up and i could send it to more than one servers to speed up the calculation process. Could this be done with a cloud server(amazon services)?
Technically, i could install a second oracle server using a Database LInk and have the process executed on the linked server. But I'm looking for something that i wouldn't have on use oracle licenses just for the process calculation.
Thank you.