I'd first look at the database server to see what if any bottlenecks there are -- e.g. disk, network, CPU, memory. If there is an underlying hardware problem, this might lead you to it. But if there is an application problem, this is likely to show you the effect but not the cause.
The most thorough way to approach an Oracle performance problem is to do an extended SQL trace of one or more of the slow sessions, profile them, and see where they're actually spending their time. An excellent source of info on doing this is Cary Millsap's book which you can see the first chapter of here.
But a less complete way of looking at the same information is to simply query the data dictionary to see what events the slow sessions are waiting on. In cases where something is badly wrong, this will often be just as effective as a complete trace. I would start with running this query several times and see where that leads you:
select seq#, event, wait_time, seconds_in_wait, state
from v$session
where type='USER'
;
Another approach to gathering similar info is Tanel Poder's Snapper script