When having Oracle as a database it looks like you fase a parsing problem: The first time a query is executed, a plan has to be build how to access the data. Som BOI's build queries on 20+ tables that can confuse the optimizer and thus take a lot of time. Depending on the version of your database I can give you some hints.
Another reason can be that before you do your query someone else ruined the Oracle cache by reading something very huge and thus removing your cached data from the database. This can happen in the early morning when a fresh start of the database occurs, but when someone else reads half of the database, it can ruin your cached data.
Hope this helps,
BTW: this post has been made on my personal view. My employer might not share my point of view.