前回はOracle Database 12c Release 2(以下、12cR2)のマルチテナントについて紹介しました。今回はOracle Database In-Memory(以下、Database In-Memory)です。インメモリ技術によって分析処理を高速化するDatabase In-Memoryも12cR2で進化し、より使い勝手が良くなりました。Oracle Database 12c Release 1(以下、12cR1)から12cR2への変更点をBefore/Afterで整理して解説します。
-
- Page 1
-
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ピースと言えるでしょう。
この記事は参考になりましたか?
- Oracle Database 12cR2のすべて連載記事一覧
-
- 12c R2ではじめるOracle Databaseのシャーディング
- さらに使いやすく!Oracle Database 12cR2のDatabase In-Me...
- ユーザの意見をトコトン反映した12c R2のマルチテナント
- この記事の著者
-
長内 麻記(オサナイ マキ)
株式会社アシスト データベース技術本部 アシスト入社後、データベース部隊に配属される。始めてOracle Databaseを触れた時は「なんて難しい製品なんだろう。」と思い、気が重くなった。その後、フィールド・エンジニアとしてDBシステムの構築や、新機能のハンズオンセミナー立ち上げなどを経験。現在...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア