PLSQL_CONN_MEM_LIMIT

この属性では、設定された接続でPL/SQLが使用できるプロセス・ヒープ・メモリーの最大量をMB単位で指定します。

この属性を設定する場合の注意事項は、次のとおりです。

  • PL/SQLでは、必要となるまで(必要とならないかぎり)このメモリーは割り当てられません。多くのPL/SQLプログラムでは、必要なメモリー量はごく少量です。アプリケーションをどのように記述するかによって、メモリー要件が決定されます。たとえば、PL/SQLコードにサイズの大きなVARRAYが含まれる場合、大量のメモリーが必要になることがあります。

  • 使用可能な量よりも大きいメモリーを割り当てようとすると、TimesTenによってエラーが返されます。

  • この値は、ALTER SESSION文(『Oracle TimesTen In-Memory Database SQLリファレンス』を参照)を使用して変更できます。例:

    ALTER SESSION SET PLSQL_CONN_MEM_LIMIT = 100;
    

必要な権限

この属性の値の変更に権限は必要ありません。

TimesTen ScaleoutおよびTimesTen Classicでの使用

この属性は、TimesTen ClassicとTimesTen Scaleoutの両方でサポートされています。

設定

PLSQL_CONN_MEM_LIMITは次のように設定します。

属性の設定場所 属性の表示 設定

CまたはJavaプログラム、あるいはUNIXおよびLinuxシステムのTimesTen Classicのodbc.iniファイル、またはTimesTen Scaleoutのデータベース定義(.dbdef)ファイル

PLSQL_CONN_MEM_LIMIT

MB単位の整数値。デフォルト値は100です。0に設定すると、制限がなくなります。

Windows ODBCデータソース・アドミニストレータ

該当なし

PL/SQL変数によって消費されるメモリー量は、他のプログラミング言語で類似の変数によって消費される量とほぼ同じである点に注意してください。たとえば、次のような文字列の大きな配列を考えてみます。

type chararr is table of varchar2(32767) 
             index by binary_integer;
big_array chararr;

配列にそれぞれ100バイトの文字列が100,000個配置される場合、約12MBのメモリーが消費されます。

PL/SQLブロックの変数によって消費されるメモリーは、ブロックの実行中に使用され、その後解放されます。プロシージャやファンクション内ではなくPL/SQLパッケージの指定内または本体内の変数によって消費されるメモリーは、パッケージの存続期間使用されます。PL/SQLプロシージャやファンクション(パッケージ内で定義されているものなど)内の変数によって消費されるメモリーは、そのプロシージャやファンクションの存続期間使用されます。ただし、いずれの場合も、PL/SQLによって解放されたメモリーはオペレーティング・システムに戻されません。かわりに、PL/SQLによって保持され、将来PL/SQLが起動されたときに再利用されます。アプリケーションとTimesTenの接続が切断されると、メモリーは解放されます。