Stumbled upon the following text lately. It originates from the (german only) book Oracle 10g Hochverfügbarkeit (High Availability) by Andrea Held. Have a try at it, this is real truth.
There exists an ever reoccuring problem that an application has only been sized for a medium amount of data, but, due to an ongoing acceptance on the users side, grows in terms of functionality, load and complexity. It is only a matter of time until defined maintainance windows become to small to load and process all the data. Likewise, selects and reports cumulatively offer worse performance. If there is no early time effort to customize the whole application architecture according to the increasing requirements, sooner or later a massive performance crash will have to be experienced.
Regards and welcome to the club