>When application starts it connects to Oracle DB and caches some data in to process memory.
Caches how? Using C++ new or malloc? Or using Oracle tricks?
If the former, why not read the DB data and just toss it. Then see how long that takes.
If that takes a long time, then it's an Oracle DB issue.