Oracle Database 18cの自動インメモリ(AIM):IM列ストアのオブジェクト管理を自動化する方法
本記事では、Oracle® Automatic In-Memory(AIM)を構成し、In-Memory(IM)列ストア内のオブジェクトを管理する方法について解説します。
はじめに
IM列ストア機能を使用すると、セグメントを列形式でメモリ上に配置できます。バッファキャッシュとは異なり、IM列ストアはセグメント全体をメモリにロードする点が特徴です。Automatic Data Optimization(ADO)とAIMが連携して、IM列ストア内のオブジェクトを管理します。
OracleはOracle Database 18cでAIMを導入しました。AIMはアクセス追跡、列統計、その他の関連統計情報を活用して、IM列ストア内のオブジェクトを自動的に管理します。アクセス頻度の低い「コールド」セグメントを自動的に退避させることで、アクティブなセグメントが常にメモリ上に保持される仕組みです。
インメモリセグメントが退避の対象になるのは、INMEMORY優先度がNONEに設定されている場合のみです。AIMによる退避は、IM列ストアの空き容量が枯渇したときに実行されます。データベースは、すでにメモリへ配置されたセグメントの内部統計に基づいて、退避対象となるオブジェクト群を決定します。なお、インメモリセグメントの退避を防止するADOポリシーが有効になっている場合は、そのADOポリシーがAIMよりも優先され、退避は行われません。
AIMを有効化する
システムレベルの初期化パラメータINMEMORY_AUTOMATIC_LEVELを設定することで、AIMを有効化できます。このパラメータには以下の値を指定できます。
- OFF(デフォルト):AIMを無効にします。
- LOW:メモリプレッシャーが発生した場合、コールドセグメントがIM列ストアから退避されます。
- MEDIUM:メモリプレッシャーによって未配置となったホットセグメントを、優先的にメモリへ再配置します。
次の画像は、INMEMORY_AUTOMATIC_LEVELパラメータとその値の変更方法を示しています。
AIMの統計期間を設定する
DBMS_INMEMORY_ADMINパッケージを使用すると、AIMが参照する使用統計の時間間隔を設定できます。デフォルト値は31日です。以下の例のように変更可能です。
AIMの仕組みを理解する
動的パフォーマンスビュー(V$ビュー)のV$IM_SEGMENTSを照会すると、IM列ストアに現在配置されているセグメントの一覧を取得でき、スキーマ内のINMEMORY ENABLEDステータスを持つテーブルを確認できます。次の例では、セグメントTAB1がすでに配置済みセグメント一覧に表示されています。これは優先度がHIGHに設定されているためです。
次に、他のテーブルもINMEMORY ENABLEDとして配置できます。テーブルはアクセスされた後にIM列ストアへ配置されます。以下の例をご覧ください。
続いて、別のテーブルEXAMPLE3をHIGH優先度で配置してみます。これにより、優先度NONEのセグメントよりも優先的に扱われます。V$IM_SEGMENTSを照会すると、優先度NONEのテーブルは一覧に表示されません。これはIM列ストアがメモリプレッシャー下にあるためです。EXAMPLE3は部分的に配置されており、BYTES_NOT_POPULATEDが0になっていません。そのため、AIMは他のコールドセグメント(優先度NONEのセグメント)を退避させました。なお、セグメントが部分的に配置されている場合でも、IM列ストア内のオブジェクトにアクセスするクエリは正常に実行されます。IM列ストアに見つからない残りのデータは、データベース本体から取得されるためです。
DBA_INMEMORY_AIMTASKSを照会すると、AIMが作成したすべてのタスクの状態を確認できます。また、DBA_INMEMORY_AIMTASKDETAILSには、IM列ストア内のセグメントに対してAIMが実行したすべてのアクションの詳細が記録されています。次の画像では、TAB1には何もアクションが実行されていません。これは優先度がHIGHであるためです。さらに、前述のとおりテーブルEXAMPLE3の配置時にIM列ストアがメモリプレッシャー下にあったため、AIMが他のセグメントを退避させたことがわかります。
まとめ
AIMはIM列ストア内のオブジェクト管理を自動化できる便利な機能ですが、いくつかの制限があります。AIMはクラウドベースのシステムやエンジニアード・システム上でホストされるデータベースでのみ有効化できます。オンプレミスなど他の種類のシステムでホストされているデータベースでAIMを有効化しようとすると、エラーが発生する点に注意してください。
コメントやご質問がある場合は、フィードバックタブをご利用ください。
専門家による管理・運用・構成で環境を最適化
Rackspaceのアプリケーションサービス(RAS)のエキスパートは、幅広いアプリケーションポートフォリオにわたり、以下のようなプロフェッショナルサービスおよびマネージドサービスを提供しています。
- eコマースおよびデジタルエクスペリエンスプラットフォーム
- エンタープライズリソースプランニング(ERP)
- ビジネスインテリジェンス
- Salesforceカスタマーリレーションシップマネジメント(CRM)
- データベース
- メールホスティングおよび生産性向上ソリューション
私たちがお約束すること:
- 偏りのない専門知識:即座に価値をもたらす機能に焦点を当て、モダナイゼーションの道のりをシンプルにし、伴走しながらご案内します。
- Fanatical Experience™:「プロセスファースト、テクノロジーセカンド®」のアプローチと専任の技術サポートを組み合わせ、包括的なソリューションを提供します。
- 比類のないポートフォリオ:豊富なクラウド経験を活かし、適切なテクノロジーを適切なクラウド環境に選定・展開するお手伝いをします。
- アジャイルな提供体制:お客様の現在地に合わせて柔軟に対応し、私たちの成功をお客様の成功と共に実現します。
まずは今すぐチャットでお気軽にお問い合わせください。
-
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は、あらゆる運用系および分析系ワークロードに対して、最高レベルのパフォーマンス、スケーラビ