In-Memory Column Store in Oracle Database 12c Release 1 (188.8.131.52)
In-Memory Column Store feature in Oracle Database 12c Release 1 (184.108.40.206) promises to address such kind of real-time reporting and statistic requirements at ease. This feature offers users best of both worlds (power of OLTP and OLAP/Analytics with a single database). One can push the entire table in memory or choose only selective columns to be in-memory.
Though, it comes at a cost (12c license and huge SGA memory) but worth exploring. It should assume a place in our product roadmap.
This feature allows you to store table columns in memory in a columnar format, rather than the typical row format.
— Row Oriented systems
To serialize each row of data, like this;
— Column Oriented systems
A column-oriented database serializes all of the values of a column together, then the values of the next column, and so on. For our example table, the data would be stored in this fashion:
–Comparisons and Benefits
If an application can be reasonably assured to fit most/all data into memory, in which case huge optimizations are available from in-memory database systems.
Column-oriented organizations are more efficient when an aggregate needs to be computed over many rows but only for a notably smaller subset of all columns of data, because reading that smaller subset of data can be faster than reading all data.
In practice, row-oriented storage layouts are well-suited for OLTP-like workloads which are more heavily loaded with interactive transactions. Column-oriented storage layouts are well-suited for OLAP-like workloads (e.g., data warehouses) which typically involve a smaller number of highly complex queries over all data (possibly terabytes).
For further details, one can refer to: