Oracle Database In-Memory Advisor(IMA)とは?機能と導入メリットを徹底解説
本記事では、Oracle Database 12cの機能であるOracle In-Memory Advisor(IMA)について解説し、その導入メリットを紹介します。この機能は、Oracle Databaseバージョン12.1.0.2以降で利用可能です。
IMAの主なメリット
IMAには、以下のような主要なメリットがあります。
- 分析クエリの高速化
- オンライン・トランザクション処理(OLTP)の高速化
- アプリケーションの変更が不要
- データベース管理者(DBA)によるパフォーマンス最適化作業の負担軽減
In-Memory Advisorが登場する以前は、DBAがIn-Memory Column Store(IMCS)に配置すべき表を手動で特定する必要がありました。IMAは、データベースの分析ワークロードを自動的に解析し、IMCSへ表を配置するためのSQLコマンドを含む推奨レポートを生成することで、この手作業を排除します。
さらに、IMAはOracle Database In-Memoryの構成方法について具体的な推奨事項を提示し、最大の効果を得るためにIn-Memoryへ配置すべきオブジェクトを特定したレポートと、その推奨内容を実装するSQL*Plusスクリプトを出力します。
IMAのインストールパッケージ
インストール用zipファイルおよび手順は、My Oracle Support(MOS)のドキュメントID 1965343.1から入手できます。インストールスクリプトにより、IMAはデータベースレベルでインストールされます。IMAはOracle Databaseバージョン11.2.0.3でも実行できますが、12.1.0.2以降での使用が推奨されています。
DBMS_INMEMORY_ADVISORパッケージは、In-Memoryオプションの活用によって恩恵を受けられる分析ワークロードに関するアドバイスを提供します。これは、アクティブ・セッション履歴(ASH)と自動ワークロード・リポジトリ(AWR)のデータを分析することで実現されます。分析結果としてレポートとスクリプトファイルが生成され、スクリプトには対象データベース上で実行するSQLが含まれています。このスクリプトを実行すると、推奨された圧縮タイプで推奨オブジェクトがIn-Memoryに配置されます。
IMAとデュアル・フォーマット・アーキテクチャ
従来、Oracle Databaseは行形式でデータを格納していました。各トランザクションは新しい行としてデータベースに保存され、レコード内のすべての列に迅速にアクセスできるため、オンライン・トランザクション処理システムに理想的な形式です。
一方、列形式のデータベースは、トランザクションの各属性を個別の列構造に格納します。必要な列だけを取得できるため、分析処理に適しています。
DML操作(INSERT、UPDATE、DELETEなど)においては、行形式の方が効率的です。1回の操作でレコード全体を更新できるためです。同じ操作を列形式の表に対して実行すると、表の列構造全体を変更する必要があり、行単位のDML処理には非効率になります。
Oracle Database 12cでは、データをIn-Memory行形式とIn-Memory列形式の両方で表に投入できます。これをデュアル・フォーマット・アーキテクチャと呼び、より高いパフォーマンスを実現します。既存のバッファ・キャッシュが行形式を維持し、新設のIn-Memory Column Storeが列形式を維持します。In-Memory Column Storeは、Oracle Databaseのシステム・グローバル領域(SGA)の構成要素です。
以下の図は、デュアル・フォーマット・アーキテクチャを示したものです。
画像出典:https://www.doag.org/formes/servlet/DocNavi?action=getFile&did=6770401&key=
数億行、さらには数十億行にも及ぶ幅の広い表であっても、データ・ウェアハウス環境であっても、その表を極めて高速にスキャンしてフィルタリングできます。また、ファクト表の列を複数のディメンション表と結合する際も、驚異的な速度で処理可能です。データが行優先形式ではなく列形式で格納されているため、中間の不要な列を読み飛ばすことができ、データアクセスが大幅に高速化します。
IMAとOLTP
IMAは、さまざまなOLTPやデータ・ウェアハウス操作におけるクエリの改善に活用でき、以下の主要な機能を備えています。
- In-Memoryサイズ選定の支援
- 指定したIn-Memoryサイズに対する表、パーティション、サブパーティションの推奨
- ワークロードおよびパフォーマンス・データを活用したオブジェクトの優先順位付け
- ディスクとメモリのフットプリントの違いや圧縮率への対応
- ワークロードに基づくコスト/ベネフィット分析(以下を含む)
- コスト:各種圧縮オプションにおける推定メモリサイズの提示
- ベネフィット:ワークロード処理における推定データベース時間削減指標の提示
- In-Memory領域への投入計画の提供
- 特定の構成における上位SQLのベネフィットを含むレポート機能
- In-Memoryサイズを変更して特定のローディング計画を取得する機能
- 推奨されるすべての表、パーティション、サブパーティションを含むDDLスクリプトの生成
まとめ
In-Memoryオプションを活用することで、分析クエリとOLTPの両方を高速化し、DBAの関与を最小限に抑えながらデータベースパフォーマンスを簡単に最適化できます。ビジネスの観点から見ると、リアルタイムでの意思決定の精度向上、生産性の向上、競争力の強化、コスト削減といった大きな恩恵をもたらします。
ご意見やご質問がある場合は、フィードバックタブからお気軽にお寄せください。
-
Oracle 19cのDBCAコマンドでデータベースをクローンする方法【サイレントモード完全ガイド】
本記事では、Oracle Database 19cの新機能であるDatabase Configuration Assistant(DBCA)を使用して、ソースデータベースのバックアップを作成することなく、リモートのプラガブル・データベース(PDB)をコンテナ・データベース(CDB)へクローンする手順をご紹介します。 DBCAによるクローンの最大の特長は、ソースからターゲットへの複製にかかる時間が最小限に抑えられる点です。 ソースDBの構成 CDB:LCONCDB PDB:LCON 以下は、ソース側の各コンテナ(CDBおよびPDB)に存在するDBFファイルの総数です。クローン作成後は、ター
-
データベース管理者必見!Oracle Database 19cの新機能徹底解説
Oracle® Database 19cは、数多くの新機能と改善された機能を搭載して登場しました。本記事では、データベース管理者(DBA)の業務を効率化する主要な新機能について詳しく解説します。 はじめに Oracle 19cは、Oracle Database 12cリリース2製品ファミリーにおいて長期サポートが提供される最終リリースです。Linux®、Windows®、Solaris®、HP/UX®、AIX®などの各プラットフォームに加え、Oracle Cloud上でも利用可能です。Oracle 19cは、あらゆる運用系および分析系ワークロードに対して、最高レベルのパフォーマンス、スケーラビ