Oracle Database In-Memory optimizes both analytics and mixed workload OLTP, delivering outstanding performance for transactions while simultaneously supporting real-time analytics, business intelligence, and reports.
Oracle Database In-Memory provides a unique dual-format architecture that enables tables to be simultaneously represented in memory using traditional row format and a new in-memory column format. The Oracle SQL Optimizer automatically routes analytic queries to the column format and OLTP queries to the row format, transparently delivering best-of-both-worlds performance. Oracle Database 12c automatically maintains full transactional consistency between the row and the column formats, just as it maintains consistency between tables and indexes today. The new column format is a pure in-memory format and is not persistent on disk, so there are no additional storage costs or storage synchronization issues.
Oracle Database In-Memory implements state-of-the-art algorithms for in-memory scans, joins and aggregation. These optimizations enable Oracle Database In-Memory to run queries at the astounding rate of billions of rows per second for each CPU core. Analytics that previously took hours or longer to run can now complete in seconds, enabling real-time business decisions.
Mixed workload databases run reports and ad hoc queries in addition to OLTP transactions. It is common to create dozens of indexes on important tables purely to speed up reports. The In-Memory column format eliminates the need for most of these analytic indexes by delivering performance similar to having an index on every column, but with much less transactional overhead. Removing analytic indexes speeds up OLTP operations since the analytic indexes no longer need to be maintained by every transaction.
Oracle Database In-Memory does not require all database data to fit in memory. Users can choose to populate only performance sensitive tables or partitions into memory. Less performance sensitive data can reside on lower cost flash or disk. Queries execute transparently on data residing on all three tiers - memory, flash and disk - enabling Oracle Database In-Memory to be used with databases of any size.
Enabling Oracle Database In-Memory is as easy as setting the size of the in-memory column store and identifying tables to bring into memory. Background processes populate data from storage into in-memory columns while the database remains fully active and accessible. No changes are required to use it with any application or tool that runs against the Oracle Database. Analytic queries are automatically routed to the column store by the optimizer, and transactional semantics are guaranteed by the database.
Oracle Database In-Memory inherits all the proven functionality of Oracle Database 12c, including the sophisticated and robust high availability solutions embodied in Oracle's popular Maximum Availability Architecture (MAA). Oracle Database In-Memory is fully compatible with Oracle's Multitenant database architecture, allowing consolidated databases to take advantage of a combination of fast in-memory and low-cost storage technologies.