SSJ Tech Lab - Oracle Database テクニカルラボ

Database In-MemoryのCPUリソースを制御する(DBRM)

対応バージョン

Oracle Database 12.1.0.2

2016-06-23記事公開

Database In-Memoryのデータ移入処理について、CPUリソースを制御する方法について説明します。(物理ディスクからインメモリ用のメモリ領域にデータ配置することを移入と呼びます)

制御の方法

制御はDatabase リソース・マネージャ(DBRM)を用いて行います。
デフォルトでは移入処理はora$autotaskというコンシューマ・グループに紐づいており、この紐づきを変更することが出来ます。

DBRMでは、コンシューマ・グループごとにCPUリソースの優先度を変更できます。
例えば以下のようにリソースマネージャを構成していた場合に、移入処理(インメモリ化)を優先的に行うために、HIGHRES_GROUPSというコンシューマグループに紐づけるものとします。

コンシューマ・グループ CPU優先度(Level1)
HIGHRES_GROUPS 70%
LOWRES_GROUPS 20%
OTHER_GROUPS 10%

先に説明した通り最初はora$autotaskに対し紐づいていますが、ora$autotaskに対して設定されていない為、移入処理はOTHER_GROUPSへ割り当てられます。

以下の構文にて紐づきの変更が可能です。OTHER_GROUPSからHIGHRES_GROUPSへ変更します。(マルチテナントの場合はPDBが対象となります。)

DBMS_INMEMORYを使用したオンデマンド処理(ユーザ要求)による移入は上記設定の対象とならない為、気を付けておく必要があります。

参考情報(参考元) https://docs.oracle.com/cd/E57425_01/121/ARPLS/d_inmemory.htm
Oracle Database PL/SQLパッケージおよびタイプ・リファレンス
12cリリース1 (12.1)
B71281-03
81 DBMS_INMEMORY
参考情報(参考元ホワイト・ペーパー) Oracle Database In-Memory Oracleホワイト・ペーパー | 2015年7月
Oracle Database In-Memory Oracleホワイト・ペーパー
Oracle Database In-Memoryの監視と管理
IM列ストア移入のCPU消費量の管理