Use "Hints" to alter the execution plan. There's a lot of information on Hints, but my experience is that, CBO is dynamic whereas, hints, once they are in, the performance will always be the same (which is dangerous if the data changes significantly, as they could degrade performance in the long run)
Here is an example of a hint:
select /*+ index(scott.emp,dept_idx) */ * from emp
Here is where you can learn more about them: http://docs.oracle.com/cd/B19306_01/server.102/b14211/hintsref.htm
In my experience, I've had situations where Hints have dramatically increased the running time of a complex SQL Query.