One of the things that struck me about joining Oracle almost 17 years ago was the sheer power and comprehensiveness of the Oracle Database. I have never been a database guy, Oracle recruited me because I understood Java, and I have always worked with Oracle middleware. But the awe of the capabilities of the database has never left me. SOA Suite 12c uses the database for many things, including storing composites, storing composite execution state, storing human workflow state, persisting BAM data objects and so on. Because of the reliance of SOA Suite on the database then getting the database set up properly is well worth the investment.
When running the Repository Creation Utility (RCU) you are asked about the size of the database required; small, medium or large. All 3 sizes have the same table structures, but the large schema has a different storage structure. It uses a database feature called partitioning which can help with managing database growth and accelerate the purge process. Partitioning stripes a database table across multiple files based on a partition key, typically a date. Default partitioning is based on monthly interval partitioning. The benefit of this is that if all your composites from 3 months ago have completed then you can get rid of them from the database by just dropping the partition that holds the data from three months ago. Scripts will check that you have no live data in the partition before you drop it.
Partitioning is just one of the cool features that SOA Suite uses in the oracle database. There are others.
So how do you know how to take best advantage of the database used by SOA? Fortunately with 12c Oracle have significantly improved the tuning and management documentation for the database. Below is a list of links I recently gathered for a large manufacturer who is going live on 12.1.3 over the next few months. I think you will find them well worth the study.
Following documentation may be helpful in configuring database for 12c SOA