It sounds like you tried to "fix" it before to find out where time was spent.
If it takes 10 minutes you must be able to map out exactly which step took how long, as that is what will drive your "fix" approach.
Push logs and do a time profile for that analysis.
This will help you in finding where time is spent, and for each step you will be able to take appropriate actions.
(old but still totally valid: https://www.rittmanmead.com/blog/2013/03/performance-and-obiee-summary-and-faq/ )
Just to add to Gianni's input:
The "actions" above are the ones which normally have less impact on performance than the real culprits - database, DB design and data model. I.e. most of the time it's the queries and the databases that are the issue.
Look at Robin's blog post. Look at how to create a time profile. Look at WHERE the time gets lost.