This is a very broad question.
Have you tried to index your tables properly? Have you examined the execution plans of individual queries and Isolated the problems? Are you using dynamic SQL within PL/SQL code? Have you tried to optimize your queries? There are a thousand reasons for this to happen. There is no single answer for this.
Check this out, and try to read it with patience. You'll probably find help in here: http://www.orafaq.com/tuningguide/