Rのgcメカニズムで自動的に管理されるヒープ・メモリー(R用語でのベクトルとコンス)を制限することによって、埋込みRの実行で使用されるメモリーを制御できます。データベースでヒープ・メモリーのサイズを制限するには、sys.rqconfigsetユーティリティを使用します。sys.rqconfigsetのキーワード引数を次の表に示します。
表8-1 SYS.RQCONFIGSETのキーワード引数
| キーワード | デフォルト | 説明 |
|---|---|---|
|
|
最小のRベクター・ヒープ・メモリー |
|
|
最大のRベクター・ヒープ・メモリー |
|
|
Rコンス・セルの最小値 |
|
|
Rコンス・セルの最大値 |
例8-4 埋込みRが使用するメモリーの制御用のSQLコマンド
-- Set the minimum R vector heap memory to 20M
EXEC sys.rqconfigset('MIN_VSIZE', '20M');
-- Set the maximum R vector heap memory to 100M
EXEC sys.rqconfigset('MAX_VSIZE', '100M')
-- Set the minimum number of R cons cells to 500x1024
EXEC sys.rqconfigset('MIN_NSIZE', '500K');
-- Set the maximum number of R cons cells to 10x10x1024
EXEC sys.rqconfigset('MAX_NSIZE', '10M');
-- Set maximum vector heap memory and maximum cons cells to unlimited
EXEC sys.rqconfigset('MAX_VSIZE', NULL);
EXEC sys.rqconfigset('MAX_NSIZE', NULL);
注意:
sys.rqconfigsetプロシージャでは、Calloc、Realloc、callocまたはmallocによって割り当てられる場合のあるCタイプのメモリーを制御できません。Cタイプのメモリーは、Cで実装されるRの関数により使用される、一時的な値を保存するために作成されます。通常、Cタイプのメモリーのサイズは限定的であるため、Rのメモリー使用量に著しく影響することはありません。
sys.rqconfigsetプロシージャは、sys.rq_configと呼ばれる構成表で設定を編集します。Oracle R Enterpriseの様々な環境設定を確認するためにこの表の内容を表示できます。sys.rq_configに格納された設定で、埋込みRのメモリーが制限されます。必要な場合はこれらのメモリー制限を変更できますが、ほとんどの場合、sys.rq_configの値は変更しないでください。
次の問合せは、sys.rq_configに格納されているサンプルの値を示します。
SQL> SELECT * FROM sys.rq_config; NAME VALUE ------------------------- ----------------------------------------------------- R_HOME /usr/lib64/R R_LIBS_USER /dbhome_1/R/library VERSION 1.5.1 MIN_VSIZE 32M MAX_VSIZE 4G MIN_NSIZE 2M MAX_NSIZE 20M