対応バージョン
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が対象となります。)
SQL> BEGIN
2 dbms_resource_manager.create_pending_area();
3 dbms_resource_manager.set_consumer_group_mapping(
4 attribute => 'ORACLE_FUNCTION'
5 , value => 'INMEMORY'
6 , consumer_group => 'HIGHRES_GROUPS'
7 );
8 dbms_resource_manager.validate_pending_area();
9 dbms_resource_manager.submit_pending_area();
10 END;
11 /
DBMS_INMEMORYを使用したオンデマンド処理(ユーザ要求)による移入は上記設定の対象とならない為、気を付けておく必要があります。
参考情報(参考元)
https://docs.oracle.com/cd/E57425_01/121/ARPLS/d_inmemory.htm
Oracle Database PL/SQLパッケージおよびタイプ・リファレンス
12cリリース1 (12.1)
B71281-05
81 DBMS_INMEMORY
参考情報(参考元ホワイト・ペーパー)
Oracle Database In-Memory Oracleホワイト・ペーパー | 2015年7月
Oracle Database In-Memory Oracleホワイト・ペーパー
Oracle Database In-Memoryの監視と管理
IM列ストア移入のCPU消費量の管理
