RMU Set Row_Cacheコマンドを使用すると、データベースを開かずに、データベースの行キャッシュ機能を有効または無効にすることができます。また、Alterパラメータを使用すると一度に1つのキャッシュを変更できます。
root-file-spec
行キャッシュ機能を変更するデータベース・ルート・ファイルを指定します。
Alter=(Name=cachename,option(,...))
指定したキャッシュに実行するアクションを指定します。キャッシュ名の他に少なくとも1つのオプションを指定する必要があります。
- Name=cachename
変更するキャッシュの名前。キャッシュはすでにデータベースで定義されている必要があります。Alter修飾子を使用するときはキャッシュ名を指定する必要があります。- Disable
指定したキャッシュを無効にします。- Enable
指定したキャッシュを有効にします。- Shared_Memory=keyword
キャッシュの共有メモリー・タイプとパラメータを指定します。有効なキーワードは次のとおりです。
- Type=option
次のいずれかのオプションを指定します。
- Process
従来の共有メモリー・グローバル・セクションを指定します。つまり、データベースのグローバル・セクションはプロセス(P0)アドレス空間に配置され、必要に応じて、プロセス作業セットからページ読込みされます。- Resident
データベース・グローバル・セクションが、OpenVMS Alpha共有ページ表を使用するプロセス(P0)アドレス空間にメモリー常駐することを指定します。つまり、グローバル・セクションは完全にメモリーに常駐し(固定され)、物理メモリーまたは仮想メモリーの使用量は従来の共有メモリー・グローバル・セクションよりも少なくなります。
- Rad_Hint=n
NoRad_Hint
指定したOpenVMS Alpha Resource Affinity Domain(RAD)からメモリーを割り当てるリクエストを指定します。このキーワードでは、メモリーを物理的に割り当てる場所についてOracle RdbおよびOpenVMSにヒントを指定します。リクエストしたメモリーが使用できない場合、システム内の他のRADから割り当てることが可能です。RADがサポートされないシステムではRad_Hint値として0が有効です。
Rad_Hintキーワードが有効なのは、共有メモリー・タイプをResidentに設定する場合のみです。共有メモリー・タイプをSystemまたはProcessに設定すると、前に定義したRADヒントは無効になります。
RADヒントを無効にするにはNorad_Hintを使用します。
注意
OpenVMSでのRADのサポートは、AlphaServer GSシリーズ・システムのみで対応しています。RADの使用方法の詳細は、『OpenVMS Alpha Partitioning and Galaxy Guide』を参照してください。
- Slot_Count=n
キャッシュのスロット数を指定します。- Slot_Size=n
キャッシュの各スロットのサイズ(バイト)を指定します。- Snapshot_Slot_Count=n
キャッシュのスナップショット・スロット数を指定します。値0を指定すると、指定のキャッシュのスナップショット部分が無効になります。- Working_Set_Count=n
キャッシュの作業セット・エントリ数を指定します。有効な値は1〜100です。
Disable
行キャッシュを無効にします。Enable修飾子と一緒に使用しないでください。Enable
行キャッシュを有効にします。Disable修飾子と一緒に使用しないでください。Log
Nolog
コマンドの処理をSYS$OUTPUTに報告するかどうかを指定します。ログ出力をリクエストするにはLog修飾子、ログ出力を停止するにはNolog修飾子を指定します。どちらも指定しない場合は、DCL確認スイッチの現在の設定がデフォルトになります。
- このコマンドでは、排他的なデータベース・アクセスが必要です(データベースが開いていたり、他のユーザーがアクセスしていたりすることはできません)。
- Alter修飾子は、コマンドラインに複数回指定できます。修飾子の各指定が固有のキャッシュに作用します。
- Rad_Hintキーワードでは1つの値しか指定できません。指定したRADにメモリーが含まれる必要があります。
- 共有メモリーをSystem(Galaxyが有効)またはResidentに設定するときは、データベースを開くプロセスにVMS$MEM_RESIDENT_USER識別子を付与する必要があります。
- 1つ以上のRADに分割できるアプリケーションでは、Rad_Hint修飾子を使用して、キャッシュのメモリーとグローバル・セクションを割り当てる場所をより正確に制御することができます。すべてのアプリケーション・プロセスが同じRADで実行し、データベースと行キャッシュのグローバル・セクションもそのRADに存在する場合は、このような制御によりパフォーマンスが向上することがあります。
- Resident共有メモリーを指定すると、グローバルのdemand-zeroページはメモリーに常駐し、ディスク上のファイルにはバックアップされません。プロセスがグローバル・セクションにマップされ、仮想メモリーがプロセスから参照されるときも、これらのページはプロセスの作業セット・リストに配置されません。また、これらのページは、プロセスの作業セット割当て制限やページファイル割当て制限に対してカウントされません。
- 物理メモリーを節約するため、通常、Oracle Rdbでは、大きな常駐グローバル・セクションを作成する際に共有ページ表の作成と使用を試行します。
- 個々のキャッシュの行の合計(実際の行とスナップショット行の合計)は2,147,483,647に制限されます。
例1次の例は、キャッシュmycacheのスロット数を設定します。
$ RMU/SET ROW_CACHE/ALTER=(NAME=mycache, SLOT_COUNT=8888)
例2
このコマンドはすべてのキャッシュを無効にします。
$ RMU/SET ROW_CACHE/DISABLE
例3
次のサンプルは、キャッシュcache2がRAD 2を使用することを指定します。
$ RMU/SET ROW_CACHE/ALTER=(NAME=cache2, SHARED_MEM=(TYPE=RESIDENT, - _$ RAD_HINT=2)
例4
この例は、キャッシュseacacheを無効にします。
$ RMU/SET ROW_CACHE/ALTER=(NAME=seacache, DISABLE)
例5
この例では、Alter修飾子が複数使用されています。
$ RMU /SET ROW_CACHE MF_PERSONNEL/ALTER=(NAME = RDB$SYS_CACHE, - _$ SLOT_COUNT = 800, WINDOW_COUNT = 25) - _$ /ALTER= (NAME = RESUMES,SLOT_SIZE=500,WORKING_SET_COUNT = 15)
例6
次の例は、データベースMYDBを変更して、キャッシュEMPL_IDXのスナップショット・スロット数を25000に設定し、SALESキャッシュのキャッシュのスナップショットを無効にします。
$ RMU /SET ROW_CACHE DGA0:[DB]MYDB.RDB - _$ /ALTER=(NAME=EMPL_IDX, SNAPSHOT_SLOT_COUNT=25000) - _$ /ALTER=(NAME=SALES, SNAPSHOT_SLOT_COUNT=0)