PL/SQL接続属性
この項では、PL/SQL接続属性について説明し、それらを設定および変更する例を示します。
『Oracle TimesTen In-Memory Databaseリファレンス』のPL/SQL初期接続属性およびPL/SQL一般接続属性を参照してください。
PL/SQL接続属性リファレンス
この表には、必要な権限、および各接続属性が初期接続属性と一般接続属性のいずれであるかが示されています。初期接続属性はデータベースが最初にロードされるときに設定され、すべての接続に対して有効です。初期接続属性の設定を変更してデータベースをロードできるのは、インスタンス管理者のみです。一般接続属性の設定は1つの接続にのみ適用され、設定を行うのに特別な権限は必要ありません。
表6-1 PL/SQL接続属性
属性 | 概要 |
---|---|
|
一般接続属性 必要な権限: なし これを使用して、PL/SQLユニットの条件付きコンパイルを操作するための問合せディレクティブを設定すると、確認する条件に応じて、PL/SQLプログラムの機能をカスタマイズできます。これは、アプリケーションを複数のデータベース環境にデプロイできる場合に、特に便利です。たとえば、次のようにデバッグ機能をアクティブにします: PLSQL_CCFLAGS='DEBUG:TRUE' PL/SQLの条件付きコンパイル・フラグは、次のようなCコンパイラのコマンドラインのフラグと概念が似ています。 % cc -DEBUG=TRUE ...
『Oracle Database PL/SQL言語リファレンス』の条件付きコンパイルを参照してください。 『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_CCFLAGSも参照してください。 |
|
一般接続属性 必要な権限: なし PL/SQLで現在の接続に割り当てることができるPL/SQL共有メモリー(プロセス・ヒープ・メモリー)の最大サイズを指定します。(このメモリーは、必要になるまで実際には割り当てられません。)このメモリーは、キャッシュされた実行可能コードではなく、大きなPL/SQLコレクションなどの実行時データに使用されるメモリーです。この設定により、使用可能なすべての実行時メモリーをPL/SQLで取得してしまう可能性がある場合に、CやJavaコンポーネントなどのアプリケーションの他の部分が保護されます。
『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_CONN_MEM_LIMITも参照してください。 ノート: |
|
初期接続属性 必要な権限: インスタンス管理者 TimesTenダイレクト・ドライバを使用する各プロセスにPL/SQL共有メモリー・セグメントがロードされる場所を示す仮想アドレス(16進値)を指定します。このメモリー・アドレスは、あるデータベースへのすべての接続、およびそのデータベースに接続するすべてのプロセスで同じである必要があります。 1つのアプリケーションから複数のデータベースに同時にダイレクト接続する場合は、データベースごとに異なる値を設定する必要があります。 プラットフォーム固有の情報は、『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_MEMORY_ADDRESSを参照してください。 |
|
初期接続属性 必要な権限: インスタンス管理者 すべての接続で共有するPL/SQL共有メモリー・セグメントに割り当てられるメモリーのサイズをMB単位で指定します。このメモリーは最近実行したPL/SQLコードおよびPL/SQLオブジェクトに関するメタデータを保持するために使用します。 PL/SQLメモリー・サイズの計算についてと、プラットフォーム固有の値とチューニングの情報については、『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_MEMORY_SIZEを参照してください。 |
|
初期接続属性 必要な権限: インスタンス管理者 1つのセッションで1回にオープンできるPL/SQLカーソルの最大数を指定します。 この属性の機能はOracle Databaseの 『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_OPEN_CURSORSも参照してください。 データベース・レベルで、 |
|
一般接続属性 必要な権限: なし PL/SQLライブラリ・ユニットのコンパイルに使用する最適化レベルを指定します。設定値が高いほど、コンパイラでPL/SQLライブラリ・ユニットを最適化するのに多くの処理が必要になります。可能な値は、0、1、2または3です。
『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_OPTIMIZE_LEVELも参照してください。 |
|
一般接続属性 必要な権限: なし キャッシュするセッション・カーソルの数を指定します。 この属性の機能は、Oracle Databaseの
『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_SESSION_CACHED_CURSORSも参照してください。 データベース・レベルで、 |
|
一般接続属性 必要な権限: なし PL/SQLプログラム・ユニットを終了まで実行できる時間を秒単位で指定します。新しい値を設定すると、その値は現在実行中のPL/SQLプログラムに適用されます。可能な値は、0(時間制限なし)または正の整数です。
『Oracle TimesTen In-Memory Databaseリファレンス』のPLSQL_TIMEOUTも参照してください。 『Oracle TimesTen In-Memory Database C開発者ガイド』のSQL文のタイムアウト期間の設定で説明されている、TimesTen SQL問合せのタイムアウト設定、および『Oracle TimesTen In-Memory Databaseリファレンス』のTTC_Timeoutで説明されている、TimesTenの TimesTenクライアント/サーバーを使用している場合、 タイムアウト値同士の関係についての追加情報は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のSQLおよびPL/SQLのタイムアウト値の選択を参照してください。 ノート: PL/SQLプログラムが、このタイムアウト値に対して実行時間をチェックする間隔は変更可能です。プログラムをタイムアウト値よりも大幅に長い時間実行してから終了できます。 |
ノート:
PL/SQLで考慮する必要があるTimesTen接続属性は、他にもあります。それらの詳細は、Oracle TimesTen In-Memory Databaseリファレンスの次に示す項を参照してください。
-
LockLevel
一般接続属性が1(データベース・レベルのロック)に設定されている場合、一部のPL/SQL内部ファンクションは実行できません。したがって、接続のLockLevel
を0に設定してください。その後、ttLockLevel
組込みプロシージャを使用し、必要に応じてトランザクションのロックをデータベース・レベルのロックに切り替えることができます。「LockLevel」および「ttLockLevel」を参照してください。 -
PL/SQL共有メモリーのセグメントは、
MemoryLock
初期接続属性の影響を受けません。「MemoryLock」を参照してください。
デフォルトのPL/SQL接続属性によるデータベースの作成
この項では、PL/SQL接続属性を指定しないでデータベースpldef
を定義する例を示します。(データベースを作成できるのはインスタンス管理者のみであることに注意してください。)
この例は、TimesTen Classicにのみ適用されます。TimesTen Scaleoutでは接続を定義するときに接続属性を設定します。odbc.ini
などの構成ファイルを手動で編集することはできません。『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースへの接続を参照してください。
odbc.ini
のエントリ例:
[pldef]
Driver=/mypath/install/lib/libtten.so
DataStore=/mypath/install/info/DemoDataStore/pldef
DatabaseCharacterSet=AL32UTF8
ConnectionCharacterSet=AL32UTF8
データベースpldef
に接続します。
% ttisql pldef
Copyright (c) 1996-2011, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=pldef";
Connection successful: DSN=pldef;UID=myuser;DataStore=/mypath/install/info/DemoDataStore/pldef;
DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;
DRIVER=/mypath/install/lib/libtten.so;
(Default setting AutoCommit=1)
ttConfiguration
組込みプロシージャをコールして、設定を表示します。これにより、デフォルトのPL/SQL設定が表示されます。
Command> call ttconfiguration;
...
< PLSQL_CCFLAGS, <NULL> >
...
< PLSQL_CONN_MEM_LIMIT, 100 >
< PLSQL_MEMORY_ADDRESS, 0x0000005000000000 >
< PLSQL_MEMORY_SIZE, 128 >
< PLSQL_OPTIMIZE_LEVEL, 2 >
< PLSQL_TIMEOUT, 30 >
...
< PLSQL_SESSION_CACHED_CURSORS, 50 >
...
88 rows found.
ALTER SESSIONを使用した接続属性設定の変更
この項では、ALTER SESSION
を使用して一般的な接続属性値を変更する例を示します。『Oracle TimesTen In-Memory Database SQLリファレンス』のALTER SESSIONも参照してください。
この例では、PLSQL_CONN_MEM_LIMIT
およびPLSQL_OPTIMIZE_LEVEL
の設定を変更して、PL/SQL接続属性を変更します。次に、ttConfiguration
組込みプロシージャをコールして、新しい値を表示します。
Command> ALTER SESSION SET PLSQL_CONN_MEM_LIMIT=200;
Session altered.
Command> ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL=3;
Session altered.
Command> call ttconfiguration;
...
< DataStore, /mypath/install/info/DemoDataStore/pldef >
...
< PLSQL_CONN_MEM_LIMIT, 200 >
...
< PLSQL_OPTIMIZE_LEVEL, 3 >
...
< UID, MYUSER >
61 rows found.