Database In-Memoryは12cR1のPSR12.1.0.2から提供されている機能です。従来の行フォーマットでデータを保持するバッファ・キャッシュに加え、列フォーマットでデータを保持する「インメモリ・カラムストア」という新しいメモリ領域を展開します。このメモリ領域にデータを列フォーマットで保持することで、大量データの分析クエリを高速に処理できます。
バッファ・キャッシュには直近で使用されたデータや、使用頻度の高いデータがデータ・ブロック単位で格納され、使用頻度の低いデータはメモリから除外されます。一方、インメモリ・カラムストアにはあらかじめ指定したオブジェクトのみが格納されます。分析で利用される大規模なデータを確実にメモリに展開し、かつ列フォーマットを採用することで高速な参照処理を可能にします。
※以下の記事で詳細なアーキテクチャや検証結果を解説していますので、併せてご参照ください。
- OracleDBを超高速化!図解でわかるOracle Database In-Memoryの仕組み
- Oracle Database In-Memoryは本当に激速なのか(前編)
- Oracle Database In-Memoryは本当に激速なのか(後編)
- 検証で分かったOracle Database In-Memoryに関する10の真実(前編)
- 検証で分かったOracle Database In-Memoryに関する10の真実(後編)
このように唯一無二のアーキテクチャで構成されるDatabase In-Memoryは、マルチテナントと同様、日本国内では12cR2の普及に合わせ急速に展開されていくものと予測されます。また、近年のOracle OpenWorldの講演から、将来のOracle Databaseを語る上でDatabase In-Memoryが重要な位置づけにあることがわかります。
2014年のDatabase In-Memoryリリースに続き、2015年のOpenWorldでは「Software in Silicon」と呼ばれる、チップ内でSQLを処理する技術を搭載したSPARC M7が発表されました。インメモリになると、ボトルネックがディスクI/OからCPUに移るので、“如何にCPUを効率よく回してデータベースを速くするか!”という観点で開発されています。
そして2016年のOpenWorldでは12cR2のリリースが発表され、具体的な内容は後述しますが、Database In-Memoryも大きく進化しています。
また、「Non-Volatile Memory is Coming」という発表の中で、「不揮発性メモリの開発に着手していて、2018年には提供を開始する。既にOracle Databaseへの対応も開発中」というアナウンスがされました。従来から“如何にディスクI/Oを減らして効率を上げるか”と考えられてきたデータベースの仕組みが、不揮発性メモリの登場で根本的に変わります。Oracle Databaseはディスクベースからインメモリデータベースへ移り変わる流れの中で、ソフトウェアとハードウェアの両面から着々とピースを揃えてきています。その中でも、Database In-Memoryはデータベースエンジニアにとって重要な1ピースと言えるでしょう。