Symfoware/RDBのクライアント用の動作環境ファイルに相当する指定を、Symfoware ODOSセットアップの[Symfoware/RDBオプション設定]画面で指定することができます。なお、オプションで設定できるパラメタ名の先頭文字“CLI_”を削除したパラメタ名が、Symfoware Serverのクライアント用の動作環境ファイルのパラメタと一致しています。
データソースに指定したオプション値はコネクション接続時に読み込まれます。
Symfoware ODOS セットアップの詳細については、“3.1 ODBCデータソースの登録”を参照してください。
動作環境パラメタの指定の優先順位
動作環境の設定項目の中には、システム用の動作環境ファイル、サーバ用の動作環境ファイルおよびODOSのオプションで設定できるパラメタで、重複して指定できるパラメタがあります。
参考
データベース簡単運用の場合には、Symfoware Severのインストール時に、システム用の動作環境として最適な環境が設定されるため、チューニングの必要がありません。よって、システム用の動作環境ファイルは、作成不要です。
優先順位は、以下のとおりです。
サーバ用の動作環境ファイル
ODOSのオプションで設定できるパラメタ
システム用の動作環境ファイル
【パラメタ】
ODOSを利用するアプリケーションから指定可能なパラメタは以下となります。
分類 | パラメタ | 概要 | 優先順位 | ||
---|---|---|---|---|---|
1 | 2 | 3 | |||
SV | ODOSのオプションで設定できるパラメタ | SY | |||
通信 | 通信に使用するバッファサイズ | - | ○ | - | |
使用するサーバ用の動作環境ファイル | - | ○ | - | ||
SQLエラー発生時のトランザクション | - | ○ | - | ||
1つのトランザクションの最大使用可能時間 | ○ | ○ | ○ | ||
通信時の待ち時間 | - | ○ | - | ||
通信データの暗号化 | サーバ認証で使用するCA証明書ファイルの配置先 | - | ○ | - | |
作業領域など | SQL記述子の情報 | - | ○ | - | |
同時に操作できるSQL文の数 | - | ○ | - | ||
SQL文の実行手順を格納しておくバッファのサイズ | - | ○ | - | ||
一括FETCHを行う場合のバッファの数とサイズ | - | ○ | - | ||
作業用ソート領域として使うメモリサイズ | ○ | ○ | ○ | ||
作業用ソート領域および作業用テーブルとして使うファイルサイズ | ○ | ○ | - | ||
作業用テーブルとして使うメモリのサイズ | ○ | ○ | ○ | ||
作業用テーブルおよび作業用ソート領域のパス | ○ | ○ | ○ | ||
データ処理 | 代入処理でオーバフローが起きた場合の処理 | - | ○ | - | |
文字コードの変換をクライアントで行うか否か | - | ○ | - | ||
UNICODEの補助文字(1~16面の4バイト文字)の文字数 | ○ | ○ | ○ | ||
表・インデックス | 格納構造定義を行わないインデックスを作成する場合のインデックスのデータ格納域の初期量、拡張量、ページ長など | ○ | ○ | ○ | |
格納構造定義を行わない表を作成する場合のOBJECT構造の表のデータ格納域の初期量、拡張量、ページ長など | ○ | ○ | ○ | ||
格納構造定義を行わない表を作成する場合の表のデータ格納域の初期量、拡張量、ページ長など | ○ | ○ | ○ | ||
DSIの容量拡張を起動するか否か | - | ○ | - | ||
アプリケーションで使用するDSIを限定する | ○ | ○ | - | ||
一時表にインデックスを定義する場合のインデックスのデータ格納域の初期量、拡張量など | ○ | ○ | ○ | ||
一時表を定義する場合の表のデータ格納域の初期量、拡張量など | ○ | ○ | ○ | ||
排他 | 使用するDSOの占有の単位、占有モード | ○ | ○ | - | |
占有待ちの方式 | - | ○ | - | ||
占有の単位を行とするか否か | - | ○ | ○ | ||
トランザクション | トランザクションアクセスモードの初期値を指定する | - | ○ | ○ | |
独立性水準の初期値を指定する | - | ○ | ○ | ||
デバッグ | ROUTINE_SNAP機能を利用するか否か | - | ○ | - | |
SQL_SNAP機能を利用するか否か | - | ○ | - | ||
アクセスプランおよび性能情報 | アプリケーション単位でアクセスプランを取得するか否かおよびSQL文に対するアドバイスを出力するか否か | - | ○ | - | |
WHERE句にブール演算子”OR”、または、行値構成子を指定した場合、TIDユニオンマージのアクセスプランのみを作成するか否か | ○ | ○ | ○ | ||
導出表を絞り込む探索条件を指定した場合、その探索条件を導出表のWHERE句に移動するか否か | ○ | ○ | ○ | ||
インデックスを使用しないアクセスプランを選択するか否か | ○ | ○ | - | ||
非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択するか否か | ○ | ○ | ○ | ||
結合表と他の表のジョイン順 | ○ | ○ | ○ | ||
ジョインする方法 | ○ | ○ | ○ | ||
インデックス、クラスタキー、または分割キーの検索範囲の最大数 | ○ | ○ | ○ | ||
最適化情報を設定していない場合、ジョイン順をV5以前と同じにするか否か | ○ | ○ | ○ | ||
四則演算の検索範囲について、インデックスの範囲検索、または、クラスタキー検索を行うか否か | ○ | ○ | ○ | ||
探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行うか否か | ○ | ○ | ○ | ||
ソート処理がレコードをハッシングして格納するための領域サイズ | ○ | ○ | ○ | ||
アプリケーション単位でSQL性能情報を取得するか否か | - | ○ | - | ||
述語ごとの検索範囲の選択率の値 | ○ | ○ | ○ | ||
インデックス検索と表データ取得のアクセスモデルでTIDソートを利用するか否か | ○ | ○ | ○ | ||
TIDユニオンマージのアクセスモデルを有効にするか否か | ○ | ○ | ○ | ||
UPDATE文:探索またはDELETE文:探索の更新標的レコードを位置づける部分の占有モード | ○ | ○ | ○ | ||
リカバリ | ドライバのリカバリ水準を指定する | - | ○ | - | |
予約語とSQL機能 | アプリケーションの予約語とSQL機能のレベルを設定する | - | ○ | - | |
並列クエリ | データベースを並列に検索する場合の多重度 | ○ | ○ | ○ | |
アプリケーション単位またはコネクション単位にデータベースを並列に検索するか否か | ○ | ○ | |||
その他 | アーカイブログ満杯時にエラー復帰するか否か | - | ○ | ○ |
SV:サーバ用の動作環境ファイルへの指定が可能であるか否かを表します。
SY:システム用の動作環境ファイルへの指定が可能であるか否かを表します。
○:指定可
-:指定不可
注)データベース簡単運用の場合は、指定できません。
◆通信に関する実行パラメタ
CLI_BUFFER_SIZE = ([初期量][,拡張量])
バッファの初期量を1~10240の範囲で指定します。省略した場合は、32が指定されたものとみなします。単位はキロバイトです。
拡張量を1~10240の範囲で指定します。省略した場合は、32が指定されたものとみなします。単位はキロバイトです。
CLI_SERVER_ENV_FILE = (SQLサーバ名,ファイル名)
接続するデータ資源名を記述します。SQLサーバ名に、“)”、“;”、“=”および“%”は指定できません。
サーバ用の動作環境ファイル名を、絶対パスで指定します。ファイル名に、“)”、“;”、“=”および“%”は指定できません。
CLI_TRAN_SPEC = ({NONE | TRANSACTION_ROLLBACK})
SQL文が実行中にエラーとなった場合のトランザクションの対処方法を指定します。
なお、本実行パラメタは、トランザクションモニタ配下では指定できません。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_TRAN_SPEC = (NONE)
各プラットフォームのトランザクションの仕様に従います。
SQL文の実行がエラーとなった場合に、トランザクションをロールバックします。
CLI_TRAN_TIME_LIMIT = (最大トランザクション実行時間)
1つのトランザクションで使用可能な時間を指定します。
指定時間を超過した場合には、トランザクションをロールバックして、接続中のコネクションを切断します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_TRAN_TIME_LIMIT = (0)
最大トランザクション実行を0~32767の範囲で指定します。単位は秒です。0を指定すると無制限になります。
CLI_WAIT_TIME = (待ち時間)
CLI_WAIT_TIMEで指定された時間内に、サーバからのデータが受信できなかった場合には、実行中のSQL文はエラーとなり、コネクションは切断されます。
なお、本実行パラメタは、トランザクションモニタ配下では指定できません。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_WAIT_TIME = (0)
待ち時間を0~32767の範囲で指定します。単位は秒です。0を指定した場合、データが受信できるまで待ちます。
◆通信データの暗号化に関する実行パラメタ
CLI_SSL_CLI_CA_CERT_FILE = (CA証明書ファイル名)
サーバ認証で使用する認証局(Certificate Authority: CA)証明書ファイルの配置先を指定します。
CA証明書ファイルは、データベース管理者が認証局に発行手続きを行って取得後、アプリケーションを開発および実行するマシンに配布されます。
通信データを暗号化しない場合に本パラメタを設定するとエラーになります。
CA証明書のファイル名を絶対パスで指定します。
指定できるファイル形式は、PEM形式のみです。
また、証明書の鍵長は2048ビット以上が必要です。なお、2048ビット未満の鍵長で生成された証明書またはSHA-1を使用した証明書は使用できません。
指定例:
CLI_SSL_CLI_CA_CERT_FILE = (C:\CertificateAuthority\CAFlie.pem)
◆作業領域に関する実行パラメタ
CLI_DESCRIPTOR_SPEC = (項目記述子域の数の初期値)
動的SQLのSQL記述子の情報を指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_DESCRIPTOR_SPEC = (100)
動的SQLで利用するSQL記述子域獲得時の項目記述子域の数の初期値を1~32767の範囲で指定します。
CLI_MAX_SQL = (オブジェクトの数)
同一コネクションオブジェクト内で同時に作成できる、以下のオブジェクトの数を指定します。
RDOの場合:rdoQueryオブジェクト、rdoResultsetオブジェクト
ADOの場合:Commandオブジェクト、Recordsetオブジェクト
ADO.NETの場合:OdbcCommandオブジェクト、OdbcDataAdapterオブジェクト
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_MAX_SQL = (1024)
オブジェクトの数を2~32000の範囲で指定します。
ポイント
CLI_MAX_SQLの値を拡張して使用した場合、以下の考慮が必要です。
Symfoware/RDBでは、同一SQL文を繰り返し実行する場合の処理効率を図るため、SQL文を実行するための情報の個数をCLI_MAX_SQLに指定します。また、SQL文の処理手順を格納するOPLバッファのサイズを、CLI_OPL_BUFFER_SIZEに指定します。
SQL文情報の保持期間は、以下のようになります。
RDOの場合:rdoQueryオブジェクト、rdoResultsetオブジェクトが作成されてから、破棄されるまで
ADOの場合:Commandオブジェクト、Recordsetオブジェクトが作成されてから、破棄されるまで
ADO.NETの場合:OdbcCommandオブジェクト、OdbcDataAdapterオブジェクトが作成されてから、破棄されるまで
CLI_OPL_BUFFER_SIZE = (バッファサイズ)
Symfoware/RDBでは、同一SQL文を複数回実行するときに、最初の実行で作成した処理手順を使用することによって処理効率の向上を図っています。CLI_MAX_SQLに指定した数の処理手順を格納するバッファのサイズを指定します。この領域は、サーバ側で獲得されます。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_OPL_BUFFER_SIZE = (8192)
SQLの処理手順を格納するバッファのサイズを1~10240の範囲で指定します。単位はキロバイトです。
注意
同一SQL文を複数回実行するとき、以下の場合については最初の実行で作成した処理手順は使用されず、新たに処理手順を作成します。
前回の実行後、保持可能な処理手順の数(CLI_MAX_SQLに指定した値と同数)以上の異なるSQL文を実行した場合
前回の実行後、SET TRANSACTION文によりトランザクションモード(アクセスモードまたは独立性水準)を変更した場合
前回の実行後、SET CATALOG文により被準備文の対象となるデータベース名を変更した場合
前回の実行後、SET SCHEMA文により被準備文の省略したスキーマ名を変更した場合
前回の実行後、SET SESSION AUTHORIZATION文によりスコープの異なる利用者に変更した場合
前回の実行後、SQL文が使用するデータベース資源についてALTER TABLE文により動的に列の追加または削除を実行した場合
前回の実行後、SQL文が使用するデータベース資源についてCREATE DSI文により動的にDSIの追加または削除を実行した場合
前回の実行後、SQL文が使用するデータベース資源についてALTER DSI文により動的にDSIの分割値変更を実行した場合
動作環境ファイルのパラメタINACTIVE_INDEX_SCANにNOを指定している場合、またはODOSのオプションで設定できるパラメタCLI_INACTIVE_INDEX_SCANにNOを指定している場合に、前回の実行後、rdbexdsiコマンドにより任意のDSIの除外または除外の解除を実行した場合
前回の実行後、SQL文が使用するデータベース資源を削除した場合
ポイント
CLI_MAX_SQLの値を拡張した場合は、CLI_OPL_BUFFER_SIZEの値も変更する必要があります。以下の方法で見積もった値をキロバイト単位で指定してください。
SQLの処理手順を格納するバッファのサイズ = 0.7KB + Σ アクセス対象の表単位のSQL処理手順サイズ アクセス対象の表単位のSQL処理手順サイズ = 4.2KB + Σ SQL文単位のSQL処理手順サイズ SQL文単位のSQL処理手順サイズ = 0.17KB × 列数 + 0.08KB × 条件数
アクセス対象の表単位のSQL処理手順サイズ
アクセス対象の表単位のSQL処理手順サイズの総和です。アクセス対象の表単位のSQL処理手順サイズを求め、それらを合計します。
SQL文単位のSQL処理手順サイズ
当該表をアクセスするSQL文単位のSQL処理手順サイズの総和です。当該表をアクセスするSQL文単位のSQL処理手順サイズを求め、それらを合計します。
列数
当該SQL文に記述する列の数です。列に“*”を記述する場合は、表を構成する列の数になります。同一の列を選択リストや探索条件などの複数箇所に記述する場合や同一箇所に同一の列を複数記述する場合は、それぞれ列数に加算してください。
条件数
当該SQL文に記述する条件(述語)の数です。
CLI_RESULT_BUFFER = ([個数][,バッファサイズ])
ODOSは、データを取り出すときの性能を良くするため、複数の行を一度に取り出します。この行を格納するバッファの数とサイズを指定します。また、1つのカーソルが1つのバッファを使用するので、複数のバッファを用意すれば、複数カーソルの操作の性能を良くすることができます。バッファを使用しない場合、個数に0を指定します。この領域は、クライアント側とサーバ側で獲得されます。
バッファサイズを大きくするほど性能は良くなりますが、メモリが圧迫され、他のアプリケーションの実行に支障が発生する場合があります。
バッファサイズを大きくする場合、メモリの空き容量に注意してください。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_RESULT_BUFFER = (2,32)
使用するバッファの個数を0~255の範囲で指定します。省略した場合は、2が指定されたものとみなします。
使用するバッファのサイズを1~10240の範囲で指定します。省略した場合は、32が指定されたものとみなします。単位はキロバイトです。
CLI_SORT_MEM_SIZE = (メモリサイズ)
ソート処理のために作業用ソート領域としてサーバ側で使用するメモリの大きさを指定します。この領域は、RDBプロセスのローカルメモリにセション単位に獲得されます。
ソート処理のデータ量がCLI_SORT_MEM_SIZEに指定した値を超えると、二次記憶の作業用ソート領域にデータを書き出し、書き出したデータのソートを行います。このとき、二次記憶からのソートデータの読み込み回数はソートデータの全体量とCLI_SORT_MEM_SIZEに指定した値に依存します。このため、ソートデータの全体量に応じて、CLI_SORT_MEM_SIZEに指定する値を見積もってください。
ソート処理のデータ量がCLI_SORT_MEM_SIZEに指定した値の1万倍以上になると、ソート処理で必要なメモリが不足し、「JYP2221E 実行時の制限値を超えました.code:“4”」のエラーとなる場合があります。ただし、メモリ上の作業域の必要最低限なサイズは、作業用ソート領域へのレコードの格納順に依存するため、CLI_SORT_MEM_SIZEに指定した値の1万倍は目安となります。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_SORT_MEM_SIZE = (2112)
サーバ側で使用するメモリの大きさを64~2097150の範囲で指定します。単位はキロバイトです。
CLI_WORK_ALLOC_SPACESIZE = ([初期量][,[増分量][,[最大量][,[保持指定]]]])
作業用ソート領域および作業用テーブルとしてサーバ側で使用するファイルサイズの初期量、増分量、最大量、保持指定を指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_WORK_ALLOC_SPACESIZE = (10000,50000,CLI_WORK_PATHで指定したパス名のディスク容量,HOLD)
初期量、増分量、最大量、保持指定のいずれかの値が省略された場合は、その値のデフォルト値が指定されたものとみなします。
以下に指定例を示します。
CLI_WORK_ALLOC_SPACESIZE = (10000,50000)
CLI_WORK_ALLOC_SPACESIZE = (,50000,100000)
作業用ソート領域および作業用テーブルとして外部ファイルを作成する場合の初期量を5000~50000の範囲で指定します。省略した場合は10000が指定されたものとみなします。単位はキロバイトです。
作業用ソート領域および作業用テーブルとして作成した外部ファイルを拡張する場合の増分量を1000~100000の範囲で指定します。省略した場合は、50000が指定されたものとみなします。単位はキロバイトです。
作業用ソート領域および作業用テーブルとして作成する外部ファイルの最大量を5000~33553408の範囲で指定します。省略した場合は、CLI_WORK_PATHで指定したパス名のディスク容量となります。単位はキロバイトです。
以下の中から1つを選択します。省略した場合は、HOLDが指定されたものとみなします。
- FREE:作業用ソート領域および作業用テーブルとして作成した外部ファイルを初期量まで解放します。
- HOLD:作業用ソート領域および作業用テーブルとして作成した外部ファイルを保持します。
CLI_WORK_MEM_SIZE = (メモリサイズ)
作業用テーブルとしてサーバ側で使用するメモリの大きさです。この領域は、RDBプロセスのローカルメモリにセション単位に獲得されます。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_WORK_MEM_SIZE = (128)
サーバ側で使用するメモリの大きさを64~2097150の範囲で指定します。単位はキロバイトです。
CLI_WORK_PATH = (パス名[,パス名]・・・)
サーバ側で使用するソート作業域、作業用テーブル域の獲得先ディレクトリを指定します。“Symfoware/RDBを起動するユーザID”および“RDBコマンドを実行するユーザID”には、指定するディレクトリへの書込み権が必要です。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_WORK_PATH = (/var/tmp)
CLI_WORK_PATH = (Symfoware/RDBがインストールされているディレクトリ\TMP)
データベース簡単運用で、いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合は、以下の値が設定されます。
CLI WORK_PATH = (データ格納先ディレクトリ\RDBシステム名\USR\TMP)
参照
作業用ソート領域および作業用テーブルの見積りについては、“アプリケーション開発ガイド(共通編)”の“ソート作業域の見積り”を参照してください。
データベース簡単運用の場合の省略値として設定されるデータ格納先ディレクトリについては、“データベース簡単運用ガイド”を参照してください。
獲得先ディレクトリを指定します。
◆データ処理に関する実行パラメタ
CLI_CAL_ERROR = ({REJECT | NULL})
代入処理でオーバフローが発生した場合の処理を指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_CAL_ERROR = (REJECT)
例外エラーとします。
演算結果をNULLとします。
CLI_CHARACTER_TRANSLATE = ({CLIENT | SERVER})
データベースシステムの文字コード系が、アプリケーションで使用している文字コード系と異なる場合、コード変換をクライアントで行うか、サーバで行うかを指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_CHARACTER_TRANSLATE = (SERVER)
クライアントでコード変換を行う場合に指定します。
サーバでコード変換を行う場合に指定します。
ポイント
サーバの負荷を少しでも減らしたい場合は、クライアントで行うよう指定します。
CLI_SURROGATE_PAIR_NUMBER = ({1 | 2})
各国語文字を扱う関数は、データベースの文字コード系に従って処理されます。データベースの文字コード系がUNICODEの場合、各国語文字列を扱う関数はUNICODEの補助文字(1~16面の4バイト文字)をUCS-2形式の2文字(2バイト×2)として認識しています。本実行パラメタを指定することにより、従来2文字として認識していた補助文字を1文字として認識します。補助文字を1文字として扱うと、補助文字の文字数を意識しないで以下の関数を使うことができます。
POSITION、CHARINDEX
CHARACTER_LENGTH、LEN
SUBSTRING、LEFT、RIGHT
TRIM
LPAD
RPAD
REPLACE
REPLICATE
REVERSE
STUFF
本実行パラメタは、サーバおよびクライアントがWindows(R)の場合に利用できます。
本実行パラメタは、データベースの文字コード系がUNICODEの場合にのみ有効となります。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_SURROGATE_PAIR_NUMBER = (2)
各国語文字の補助文字1文字(4バイト)を1文字として扱います。
従来どおり、各国語文字の補助文字1文字(4バイト)を2文字(2バイト×2)として扱います。
◆表・インデックスに関する実行パラメタ
CLI_DEFAULT_INDEX_SIZE = (ベース部ページ長,インデックス部ページ長,ベース部初期量,インデックス部初期量[,拡張量,拡張契機])
格納構造定義を行わないインデックスを作成する場合、インデックスのベース部とインデックス部の割り付け量、ページ長などを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_DEFAULT_INDEX_SIZE = (8,8,30720,10240,10240,3072)
ベース部のページ長を1、2、4、8、16、32の中から指定します。単位はキロバイトです。
インデックス部のページ長を1、2、4、8、16、32の中から指定します。単位はキロバイトです。
ベース部の初期量を2~2097150の範囲で指定します。単位はキロバイトです。
インデックス部の初期量を2~2097150の範囲で指定します。単位はキロバイトです。
インデックスのベース部の拡張量を1~2097150の範囲で指定します。省略した場合は、10240が指定されたものとみなします。単位はキロバイトです。インデックス部の拡張量は、ベース部の5分の1の値となります。
ベース部およびインデックス部の拡張を行うタイミングとして、DSIの空き容量を0~2097150の範囲で指定します。インデックスのDSIの空き容量がここで指定した値になると、インデックスのベース部およびインデックス部の拡張が行われます。省略した場合は、3072が指定されたものとみなします。単位はキロバイトです。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
ベース部の5分の1がインデックス部のページ長の倍数でない場合、インデックス部のページ長の倍数に繰り上げます。
インデックス定義時には、容量拡張を行いません。拡張量および拡張契機は、インデックス定義した後に有効となります。
CLI_DEFAULT_OBJECT_TABLE_SIZE = (ページ長,初期量[,拡張量,拡張契機])
格納構造定義を行わない表を作成する場合、OBJECT構造の表の、データ格納域の割り付け量、ページ長などを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_DEFAULT_OBJECT_TABLE_SIZE = (32,32768,32768,0)
データ格納域のページ長を指定します。必ず32を指定します。単位はキロバイトです。
データ格納域の初期量を2~2097150の範囲で指定します。単位はキロバイトです。
データ格納域の拡張量を1~2097150の範囲で指定します。省略した場合は、32768が指定されたものとみなします。単位はキロバイトです。
データ格納域の拡張を行うタイミングとして、表のDSIの空き容量を0~2097150の範囲で指定します。表のDSIの空き容量がここで指定した値になると、データ格納域の拡張が行われます。省略した場合は、0が指定されたものとみなします。単位はキロバイトです。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
CLI_DEFAULT_TABLE_SIZE = (ページ長,初期量[,拡張量,拡張契機])
格納構造定義を行わない表を作成する場合、表のデータ格納域の割り付け量、ページ長などを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_DEFAULT_TABLE_SIZE = (32,30720,10240,3072)
データ格納域のページ長を1、2、4、8、16、32の中から指定します。単位はキロバイトです。
データ格納域の初期量を2~2097150の範囲で指定します。単位はキロバイトです。
データ格納域の拡張量を1~2097150の範囲で指定します。省略した場合は、10240が指定されたものとみなします。単位はキロバイトです。
データ格納域の拡張を行うタイミングとして、表のDSIの空き容量を0~2097150の範囲で指定します。表のDSIの空き容量がここで指定した値になると、表のデータ格納域の拡張が行われます。省略した場合は、3072が指定されたものとみなします。単位はキロバイトです。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
CLI_DSI_EXPAND_POINT=({ON | OFF})
アプリケーションによるデータ操作で、DSIに指定された拡張契機(rdbalmdsiコマンドまたはDSI定義文で定義します)を無効とするか否かを指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_DSI_EXPAND_POINT=(ON)
DSIに定義された拡張契機は有効になります。アプリケーションによるデータ操作で、DSIの空きページ容量が拡張契機に達した時点で、領域を拡張します。
DSIに定義された拡張契機は無効になります。アプリケーションによるデータ操作で、DSIの空きページ容量が拡張契機に達しても、領域を拡張しません。この場合、DSIの空き領域が枯渇した時点で、領域を拡張します。
CLI_INCLUSION_DSI = (データベース名.DSI名[,データベース名.DSI名・・・])
アプリケーションで、DSIを限定したい表のDSI名を指定します。
アプリケーションでは、限定されたDSIを含む表に対しては、そのDSIだけがデータ操作の範囲となります。また、本実行パラメタの指定により、アプリケーション中での探索条件の記述が省略ができます。なお、アプリケーションでDSIを限定していない表に対しては、データ操作をすることができます。
DSIを限定したい表のDSI名を指定します。DSI名に、“(”、“:”、“=”、“*”、“+”、“-”、“?”、“%”および“'”は指定できません。
CLI_TEMPORARY_INDEX_SIZE = (ベース部初期量,インデックス部初期量[,拡張量,拡張契機])
一時表にインデックスを定義する場合に、インデックスのベース部とインデックス部の割付け量を指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_TEMPORARY_INDEX_SIZE = (160,64,256,0)
ベース部の初期量を64~2097150の範囲で指定します。単位はキロバイトです。
インデックス部の初期量を64~2097150の範囲で指定します。単位はキロバイトです。
インデックスのベース部の拡張量を32~2097150の範囲で指定します。省略した場合は、256が指定されたものとみなします。単位はキロバイトです。インデックス部の拡張量は、ベース部の5分の1の値となります。
ベース部およびインデックス部の拡張を行うタイミングとして、インデックスの空き容量を0~2097150の範囲で指定します。インデックスの空き容量がここで指定した値になると、インデックスのベース部およびインデックス部の拡張が行われます。省略した場合は、0が指定されたものとみなします。単位はキロバイトです。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
ベース部の5分の1がインデックス部のページ長の倍数でない場合、インデックス部のページ長の倍数に繰り上げます。
CLI_TEMPORARY_TABLE_SIZE = (初期量[,拡張量,拡張契機])
一時表を定義する場合に、表のデータ格納域の割付け量を指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_TEMPORARY_TABLE_SIZE = (256,512,0)
データ格納域の初期量を64~2097150の範囲で指定します。単位はキロバイトです。
データ格納域の拡張量を32~2097150の範囲で指定します。省略した場合は、512が指定されたものとみなします。単位はキロバイトです。
データ格納域の拡張を行うタイミングとして、表の空き容量を0~2097150の範囲で指定します。表の空き容量がここで指定した値になると、表のデータ格納域の拡張が行われます。省略した場合は、0が指定されたものとみなします。単位はキロバイトです。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
◆排他に関する実行パラメタ
CLI_DSO_LOCK = (DSO名[/[P][占有モード]][,DSO名[/[P][占有モード]]・・・])
アプリケーションで使用するDSOおよびその占有の単位、占有モードを指定します。
本パラメタを指定した場合、指定されなかったDSOについては、占有の単位がページとなります。
CLI_DSO_LOCKが指定された場合、SET TRANSACTION文、CLI_DEFAULT_ACCESS_MODEおよびCLI_DEFAULT_ISOLATIONは指定できません。
占有の単位は、CLI_DSO_LOCK、および、CLI_R_LOCKまたは動作環境ファイルのR_LOCKでの指定により決定します。
なお、CLI_R_LOCKおよび動作環境ファイルのR_LOCKの値により、CLI_DSO_LOCKを指定できない場合があります。以下にCLI_DSO_LOCKと、CLI_R_LOCKおよびR_LOCKの関係を示します。
ODOSのオプション値のCLI_R_LOCK | システム用の動作環境ファイルのR_LOCK | CLI_DSO_LOCKの指定 | 占有の単位 |
---|---|---|---|
NO | NO | 指定可 | CLI_DSO_LOCKの指定による(注1) |
YES | 指定可 | CLI_DSO_LOCKの指定による(注1) | |
YES | NO | 指定不可 | 行単位で占有(注2) |
YES | 指定不可 | 行単位で占有(注2) | |
省略 | NO | 指定可 | CLI_DSO_LOCKの指定による(注1) |
YES | 指定不可 | 行単位で占有(注2) |
注1) CLI_DSO_LOCKの指定を省略した場合、Symfoware/RDBによって占有の単位が選択されます。詳細は、“アプリケーション開発ガイド(共通編)”の“排他の属性と選択方法”の“Symfoware/RDBによる選択”を参照してください。
注2) CLI_DSO_LOCKを指定した場合、データベースへの接続時にエラーとなります。
アプリケーションで使用するDSO名を以下の形式で指定します。
データベース名.DSO名
DSOの占有の単位をページとします。省略した場合、占有の単位はDSIになります。
DSO名に指定されたDSOにPRECEDENCE(1)が指定されている場合、本パラメタは指定できません。
占有のモードとして以下のいずれかを指定します。省略した場合は、EXが指定されたものとみなします。
非共有モードの排他を行います。
共有モードの排他を行います。
CLI_ISOLATION_WAIT = ({WAIT | REJECT})
あるトランザクションで資源にアクセスしようとしたとき、別のトランザクションがその資源を占有していた場合に、資源の占有が解除されるまで待つかどうかを指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_ISOLATION_WAIT = (WAIT)
資源の占有が解除されるまで待ちます。
エラーとしてアプリケーションに復帰します。
CLI_R_LOCK = ({YES | NO})
占有の単位を行とするかどうかを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_R_LOCK = (YES)
占有の単位を行とします。このパラメタを指定した場合、ODOSのオプション値のCLI_DSO_LOCKまたは、サーバ用の動作環境ファイルにDSO_LOCKパラメタを指定することはできません。
占有の単位は、CLI_DSO_LOCKまたはDSO_LOCKの指定に従います。このパラメタを指定し、かつCLI_DSO_LOCKおよびDSO_LOCKが指定されていない場合は、Symfoware/RDBによって自動的に占有の単位が選択されます。
データベース簡単運用の場合、占有の単位は、表またはインデックスとなります。
参照
詳細については、“アプリケーション開発ガイド(共通編)”の“排他制御”を参照してください。
また、データベース簡単運用の場合は、“アプリケーション開発ガイド(共通編)”の“トランザクションと排他制御(データベース簡単運用の場合)”を参照してください。
注意
システム用の動作環境ファイルのR_LOCKまたはODOSのオプション値のCLI_R_LOCKがNOの場合、CLI_DEFAULT_ISOLATIONまたはSET TRANSACTION文にREPEATABLE_READを指定しても、独立性水準はSERIALIZABLEになります。
システム用の動作環境ファイルのR_LOCKまたはODOSのオプション値のCLI_R_LOCKがYESの場合、CLI_DEFAULT_ISOLATIONまたはSET TRANSACTION文にSERIALIZABLEを指定しても、独立性水準はREPEATABLE READになります。
データベース簡単運用でない場合、システム用の動作環境ファイルのR_LOCKまたはODOSのオプション値のCLI_R_LOCKがNOのときには、DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の表にアクセスするアプリケーションの占有の単位はDSIになります。
◆トランザクションに関する実行パラメタ
CLI_DEFAULT_ACCESS_MODE = ({READ_ONLY | READ_WRITE})
トランザクションアクセスモードの初期値を指定します。CLI_DEFAULT_ACCESS_MODEが指定された場合、プロセスで最初に実行されるSQL文の直前でSET TRANSACTION文が実行されたことになります。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_DEFAULT_ACCESS_MODE = (READ_WRITE)
トランザクションアクセスモードの初期値をREAD ONLYとします。
トランザクションアクセスモードの初期値をREAD WRITEとします。
注意
サーバ用の動作環境ファイルのDSO_LOCKまたはODOSのオプション値のCLI_DSO_LOCKを指定して、CLI_DEFAULT_ACCESS_MODEを指定した場合は、サーバ接続時にエラーが発生します。
CLI_DEFAULT_ISOLATION = ([独立性水準1][,独立性水準2])
独立性水準1および独立性水準2に指定可能な値は以下のとおりです。
DEFAULT
READ_UNCOMMITTED
READ_COMMITTED
REPEATABLE_READ
SERIALIZABLE
独立性水準の初期値を指定します。CLI_DEFAULT_ISOLATIONが指定された場合、プロセスで最初に実行されるSQL文の直前でSET TRANSACTION文が実行されたことになります。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_DEFAULT_ISOLATION = (DEFAULT,DEFAULT)
データベース簡単運用で、本実行パラメタの指定を省略した場合は、省略値として以下の値が設定されます。
DEFAULT_ISOLATION = (READ COMMITTED, READ COMMITTED)
トランザクションアクセスモードがREAD ONLYの時の独立性水準の値を指定します。
トランザクションアクセスモードがREAD WRITEの時の独立性水準の値を指定します。
独立性水準1および独立性水準2に指定する値の意味は以下のとおりです。
独立性水準はシステム用の動作環境ファイルにおけるDEFAULT_ISOLATIONの指定に従い設定されます。
独立性水準の初期値をREAD UNCOMMITTEDとします。
独立性水準の初期値をREAD COMMITTEDとします。
独立性水準の初期値をREPEATABLE READとします。
独立性水準の初期値をSERIALIZABLEとします。
注意
CLI_DEFAULT_ACCESS_MODEにREAD_ONLYを指定した場合、独立性水準はCLI_DEFAULT_ISOLATIONの指定に関係なくREAD UNCOMMITTEDとなります。
システム用の動作環境ファイルのR_LOCKまたはODOSのオプション値のCLI_R_LOCKがNOの場合、CLI_DEFAULT_ISOLATIONまたはSET TRANSACTION文にREPEATABLE_READを指定しても、独立性水準はSERIALIZABLEとなります。
システム用の動作環境ファイルのR_LOCKまたはODOSのオプション値のCLI_R_LOCKがYESの場合、CLI_DEFAULT_ISOLATIONまたはSET TRANSACTION文にSERIALIZABLEを指定しても、独立性水準はREPEATABLE READとなります。
サーバ用の動作環境ファイルのDSO_LOCKまたはODOSのオプション値のCLI_DSO_LOCKを指定して、CLI_DEFAULT_ISOLATIONを指定した場合は、サーバ接続時にエラーが発生します。
◆デバッグに関する実行パラメタ
CLI_ROUTINE_SNAP = ({ON | OFF},ファイル名[,出力レベル])
ROUTINE_SNAP機能を利用するかどうかを指定します。
ROUTINE_SNAP機能は、SQL手続き文の実行情報をファイルに出力する機能です。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_ROUTINE_SNAP = (OFF)
参照
ROUTINE_SNAP機能の詳細および使用方法については、“アプリケーション開発ガイド(埋込みSQL編)”の“アプリケーションのデバッグ”を参照してください。
ROUTINE_SNAP機能を利用する場合に指定します。
ROUTINE_SNAP機能を利用しない場合に指定します。
SQL手続き文の実行情報の出力先のサーバ側のファイル名を、絶対パスで指定します。ファイル名に、“,”、“)”、“:”、“;”、“=”、“/”、“>”および“%”は指定できません。
指定されたファイルがすでに存在する場合、情報を追加して出力します。
複数のアプリケーションが動作する場合は、個別のトレース情報を出力しません。
アプリケーションがマルチスレッド環境で動作する場合は、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。
出力する情報のレベルとして、1または2を指定します。省略した場合、2が指定されたものとみなします。
参照
出力レベルの指定と出力情報の対応については、“アプリケーション開発ガイド(埋込みSQL編)”の“ROUTINE_SNAP機能の利用方法”を参照してください。
CLI_SQL_SNAP=(出力モード[,[ファイル名][,[出力レベル][,[繰り返し幅][,[プロセス指定]]]]])
SQL_SNAP機能を利用するかどうかを指定します。
SQL_SNAP機能は、アプリケーションが実行したSQL文の情報をファイルに出力する機能です。
SQL_SNAP機能は情報をファイルに出力するため、使用するとドライバの性能が悪くなります。必要なときにだけ指定してください。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_SQL_SNAP=(OFF)
注意
本機能の利用は性能に影響を与えるため、デバッグ作業が終了したら、本実行パラメタの設定をOFFにしてください。
また、格納データを暗号化している場合でも、スナップファイル内の情報は暗号化されません。そのため、デバッグ作業が終了したら、本実行パラメタの設定をOFFにしてください。
SQL_SNAP機能を利用するかどうかを指定します。
SQL_SNAP機能を利用する場合に指定します。
SQL_SNAP機能を利用しない場合に指定します。
出力するスナップファイルのファイル名を指定します。ファイル名にはパスと拡張子名を指定できます。ファイル名が省略された場合、sqlexec.snpというファイル名になります。拡張子が省略された場合、“.snp”という拡張子名になります。パスが省略された場合、実行するアプリケーションのカレントディレクトリに出力します。指定されたファイルがすでに存在する場合は、情報を追加して出力します。
スナップファイルの接続レベルでの出力単位を指定します。省略した場合、CONが指定されものたとみなします。
データソース単位でスナップファイルを出力します。
コネクション単位でスナップファイルを出力します。
このパラメタが指定された場合、コネクション単位でファイル名を区別するために、指定したファイル名の後ろにコネクションを識別する10進の数値が付加されます。
指定したファイル名 sqlexec.snp 実際のファイル名 sqlexec_2.snp sqlexec_5.snp
スナップファイルの出力方法を1~32767で指定します。
省略した場合、0になります。
接続から切断するまでの間に実行したAPIのスナップ情報をすべて出力します。
指定された値だけAPIのスナップ情報を出力します。
スナップファイルのシステムレベルでの出力単位を指定します。
省略した場合、SYSになります。
システム単位でスナップファイルを出力します。
プロセス単位でスナップファイルを出力します。
このパラメタが指定された場合、プロセス単位でファイル名を区別するために、指定したファイル名の後ろにプロセスを識別する16進の数値が付加されます。
指定したファイル名 sqlexec.snp 実際のファイル名 sqlexec_2435.snp sqlexec_5654.snp
◆アクセスプランおよび性能情報に関する実行パラメタ
CLI_ACCESS_PLAN = ({ON | OFF},ファイル名[,[出力レベル][,[SQLアドバイザ出力レベル]]])
アプリケーション単位でアクセスプランを取得するかどうかを指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_ACCESS_PLAN = (OFF)
参照
アクセスプランについては、“アプリケーション開発ガイド(共通編)”の“アクセスプラン”を参照してください。
アクセスプラン取得機能を利用する場合に指定します。
アクセスプラン取得機能を利用しない場合に指定します。
出力先のサーバ側のファイル名を、絶対パスで指定します。指定されたファイルがすでに存在する場合は、情報を追加して出力します。また、指定するパスが存在すること、および、指定したユーザIDに対する書込み権があることを確認してください。
出力レベルには1または2を指定します。1を指定すると、アクセスプランのセクション情報のみを出力し、2を指定すると、セクション内の各エレメント詳細情報も出力します。省略した場合は、2が指定されたものとみなします。
SQLアドバイザ出力レベルには、“ADVICE”または“NOADVICE”を指定します。“ADVICE”を指定すると、SQL文に対するアドバイスを出力します。“NOADVICE”を指定すると、SQL文に対するアドバイスを出力しません。省略した場合は、“ADVICE”が指定されたものとみなします。
CLI_CHOOSE_TID_UNION = ({YES | NO})
SQL文のWHERE句にブール演算子“OR”を指定した場合、V10.1.0以前は、TIDユニオンマージのアクセスパスのみ作成されましたが、V11.0.0以降では、TIDユニオンマージに加えて、インデックス検索、または、インデックス検索と表データ取得のアクセスプランが作成されます。ほとんどの場合、インデックス検索の方がSQL文のレスポンスが良いのですが、データの分布によっては表に対するI/O効率の高いTIDユニオンマージの方が良い場合もあります。どちらのアクセスプランを選択するかは、Symfoware/RDBにより自動的に決定されますが、最適化情報を設定しない運用の場合はこの選択を誤ってしまい、V11.0.0以降、まれにSQL文のレスポンスが悪くなることがあります。このような場合は、当パラメタにYESを指定して、V10.1.0以前と同様のアクセスプランとしてください。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_CHOOSE_TID_UNION = (NO)
以下のいずれかの場合、TIDユニオンマージのアクセスプランのみを作成します(V10.1.0以前のアクセスプラン)。
WHERE句にブール演算子”OR”を指定している場合
WHERE句に行値構成子を指定している場合
以下のいずれかの場合、TIDユニオンマージのアクセスプランとインデックス検索のアクセスプランを作成し、効率の良いアクセスプランをSymfoware/RDBが自動的に選択します。
WHERE句にブール演算子”OR”を指定している場合
WHERE句に行値構成子を指定している場合
CLI_GROUP_COL_COND_MOVE = ({YES | NO})
V6以前のSymfoware Serverからバージョンアップした場合、最適化情報を設定しない運用では、まれにSQL文のレスポンスが悪くなることがあります。このような場合は、本パラメタにNOを指定して、V6以前のアクセスプランを選択します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_GROUP_COL_COND_MOVE = (YES)
以下のいずれかの場合、導出表を絞り込む条件を導出表内に移動させる(V7以降のアクセスプラン)。
導出表にGROUP BY句、HAVING句または集合関数を指定している場合。
導出表の選択リストに列指定以外を指定している場合。
以下のいずれかの場合、導出表を絞り込む条件を導出表内に移動させない(V6以前のアクセスプラン)。
導出表にGROUP BY句、HAVING句または集合関数を指定している場合。
導出表の選択リストに列指定以外を指定している場合。
CLI_IGNORE_INDEX = ({YES | NO})
データベースを検索する時に、インデックスを使用せずにデータベースにアクセスするか否かを指定します。データウェアハウジングにおいて大量のデータを検索および集計する場合には、インデックスだけではデータが絞りきれず、インデックスを使う分だけ無駄なオーバヘッドが発生することがあります。このような場合は、本パラメタにYESを指定することにより、表の全件検索または並列スキャンのアクセスモデルを採用します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_IGNORE_INDEX = (NO)
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、CLI_IGNORE_INDEXの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
インデックスを使用しないアクセスモデルを選択する。
インデックスが使用できる時は、インデックスを使用したアクセスモデルを選択する。
CLI_INACTIVE_INDEX_SCAN = ({YES | NO})
データベースを検索する時に、非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択するか否かを指定します。インデックスを非活性状態とし、一括更新処理でインデックスを更新しない高速なバッチ処理を行うアプリケーションの場合、本パラメタにNOを指定してください。YESが指定されている場合、バッチ処理がエラーとなる場合があります。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_INACTIVE_INDEX_SCAN = (YES)
非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択する。
非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択しない。
CLI_JOIN_ORDER = ({AUTO | INSIDE | OUTSIDE})
結合表と他の表をジョインする場合のジョイン順を指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_JOIN_ORDER = (INSIDE)
データベース簡単運用で、いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合は、以下の値が設定されます。
CLI_JOIN_ORDER = (AUTO)
ただし、SQL文にASSIST指定のLEADING_TABLEを指定した場合、ASSIST指定が優先され、CLI_JOIN_ORDERの指定に関わらず、ASSIST指定に指定されたジョイン順に従います。
Symfoware/RDBが自動的に選択する。
結合表から先にジョインする。
結合表の中に指定した表と結合表の外に指定した表から先にジョインする。
CLI_JOIN_RULE = ({AUTO | MERGE | FETCH})
ジョインする方法を指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_JOIN_RULE = (AUTO)
ただし、SQL文にASSIST指定のJOIN_RULEを指定した場合、ASSIST指定が優先され、CLI_JOIN_RULEの指定に関わらず、ASSIST指定に指定されたジョイン方法に従います。
Symfoware/RDBが自動的に選択する。
マージジョインのアクセスモデルを優先する。
フェッチジョインのアクセスモデルを優先する。
CLI_MAX_SCAN_RANGE = (検索範囲数)
インデックス、クラスタキー、または分割キーについて検索範囲を作成する場合の最大数を指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_MAX_SCAN_RANGE = (1000)
1~2147483647の範囲で指定します。
CLI_SAME_COST_JOIN_ORDER = ({REVERSE | ORDER})
CLI_JOIN_ORDERパラメタにINSIDEを指定するか、省略し、最適化情報を設定しない運用の場合、まれにSQL文のレスポンスが悪くなることがあります。このような場合、本パラメタにREVERSEを指定して、V5以前のジョイン順を選択します。
最適化処理は、最適化情報で処理手順のコストを見積もり、最適な処理手順を選びます。最適化情報を設定していない場合、どのジョイン順も同じコストになることがあります。この場合、V5以前は、WHERE句の表を結合する探索条件の記述の逆順でしたが、V6以降は、記述順になります。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_SAME_COST_JOIN_ORDER = (ORDER)
ただし、SQL文にASSIST指定のLEADING_TABLEを指定した場合、ASSIST指定が優先され、CLI_SAME_COST_JOIN_ORDERの指定に関わらず、ASSIST指定に指定されたジョイン順に従います。
CLI_JOIN_ORDERパラメタにINSIDEを指定するか、省略し、最適化情報を設定しない運用の場合、WHERE句の表を結合する探索条件の記述の逆順にジョインするアクセスプランを選択する(V5以前のアクセスモデル)。
CLI_JOIN_ORDERパラメタにINSIDEを指定するか、省略し、最適化情報を設定しない運用の場合、WHERE句の表を結合する探索条件の記述順にジョインするアクセスプランを選択する(V6以降のアクセスモデル)。
CLI_SCAN_KEY_ARITHMETIC_RANGE = ({YES | NO})
四則演算の検索範囲について、インデックス範囲検索、または、クラスタキーの検索を行うか否かを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_SCAN_KEY_ARITHMETIC_RANGE = (YES)
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、CLI_SCAN_KEY_ARITHMETIC_RANGEの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
四則演算の検索値について、インデックス範囲検索、または、クラスタキーの検索を行います。
四則演算の検索値について、インデックス範囲検索、または、クラスタキーの検索を行いません。
CLI_SCAN_KEY_CAST = ({YES | NO})
探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行うか否かを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_SCAN_KEY_CAST = (YES)
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、CLI_SCAN_KEY_CASTの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行います。
探索条件に指定したインデックスキーまたは、クラスタキーで範囲検索を行います。
CLI_SORT_HASHAREA_SIZE = (メモリサイズ)
ソート処理がレコードをハッシングして格納するための領域のサイズです。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、メモリ上のすべてのレコードをハッシングして格納します。
2112~2097150の範囲で指定します。単位はキロバイトです。
CLI_SQL_TRACE = ({ON | OFF},性能情報ファイル名[,出力レベル])
アプリケーション単位でSQL性能情報を取得するかどうかを指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_SQL_TRACE = (OFF)
SQL性能情報取得機能を利用する場合に指定します。
SQL性能情報取得機能を利用しない場合に指定します。
出力先のサーバ側のファイル名を、絶対パスで指定します。指定されたファイルがすでに存在する場合は、情報を追加して出力します。
複数のアプリケーションが動作する場合は、個別のトレース情報を出力しません。
アプリケーションがマルチスレッド環境で動作する場合は、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。
出力レベルには1または2を指定します。1を指定すると、DSOごとに集計された性能情報を出力します。2を指定すると、DSI単位の情報までも出力します。
データベース簡単運用の場合は、表またはインデックスに関する情報が出力されます。出力レベルによる出力内容に違いはありません。
省略した場合は、2が指定されたものとみなします。
CLI_SS_RATE = ([選択率1][,[選択率2][,[選択率3][,[選択率4][,[選択率5]]]]])
BETWEEN述語、比較述語、LIKE述語およびCONTAINS関数でインデックスを検索する時、インデックスの検索範囲の割合を0以上1以下の小数で指定します。値は、小数第6位まで指定できます。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_SS_RATE = (0.2,0.25,0.5,0.4,0.0001)
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、CLI_SS_RATEの割合に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
BETWEEN述語を指定した場合のインデックスの検索範囲。省略した場合は、0.2が指定されたものとみなします。
比較述語“>”、“>=”、と“<”、“<=”でインデックスの検索開始位置および検索終了位置の両方が指定されている場合のインデックスの検索範囲。省略した場合は、0.25が指定されたものとみなします。
比較述語“>”、“>=”、“<”、“<=”でインデックスの検索開始位置または検索終了位置のみが指定されている場合のインデックスの検索範囲。省略した場合は、0.5が指定されたものとみなします。
LIKE述語を指定した場合のインデックスの検索範囲。省略した場合は、0.4が指定されたものとみなします。
CONTAINS関数を指定した場合のインデックスの検索範囲。省略した場合は、0.0001が指定されたものとみなします。
CLI_TID_SORT = ({YES | NO})
インデックス検索と表データ取得のアクセスモデルにおいて、TIDソートを利用するか否かを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_TID_SORT = (YES)
ただし、SQL文にASSIST指定のFIRST_ROWSを指定した場合、ASSIST指定が優先され、CLI_TID_SORTの指定に関わらず、TIDソートを利用しません。
TIDソートを利用します。
TIDソートを利用しません。
CLI_TID_UNION = ({YES | NO})
TIDユニオンマージのアクセスモデルを有効にするか否かを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_TID_UNION = (YES)
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、CLI_TID_UNIONの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
TIDユニオンマージのアクセスモデルを有効にします。TIDユニオンマージが効果的と判断した場合に選択します。
TIDユニオンマージのアクセスモデルを有効にしません。
CLI_USQL_LOCK = ({SH | EX})
UPDATE文:探索およびDELETE文:探索において、更新レコードを検索するアクセスモデルの表の占有モードを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_USQL_LOCK = (SH)
データベース簡単運用で、いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合は、以下の値が設定されます。
CLI_USQL_LOCK = (EX)
更新標的レコードを検索するアクセスモデルで共用モードで表を占有します。
更新標的レコードを検索するアクセスモデルで非共用モードで表を占有します。
◆リカバリに関する実行パラメタ
CLI_RCV_MODE = ({RCV | NRCV})
アプリケーションのリカバリ水準を指定します。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_RCV_MODE = (RCV)
リカバリ機能を利用します。この場合、リカバリを適用しない(rdbrtrコマンドで利用規定にnオプションを指定している)データベースをアクセスすることはできますが、ログは取得されません。
リカバリ機能を利用しません。この場合、リカバリを適用する(rdbrtrコマンドで利用規定にnオプションを指定していない)データベースを更新することはできません。
◆予約語とSQL機能に関する実行パラメタ
CLI_SQL_LEVEL = ({SQL88 | SQL92 | SQL95 | SQL96 | SQL2000 | SQL2007})
予約語とSQL機能のレベルを設定します。
予約語とSQL機能のレベルを設定することで、キーワードの範囲と利用可能なSQLの機能を変更できます。
本実行パラメタの指定を省略した場合は、以下の値が設定されます。
CLI_SQL_LEVEL = (SQL2007)
SQLの機能とそれを利用可能なレベルとの関係を以下に示します。
表に記載のない機能は、CLI_SQL_LEVELに関係なく利用可能です。
CLI_SQL_LEVEL | SQLの機能 | |
---|---|---|
SQL2007 | 数値関数 | ACOS |
ASIN | ||
ATAN | ||
ATAN2 | ||
COS | ||
EXP | ||
LN(注1) | ||
POWER | ||
SIGN | ||
SIN | ||
SQRT | ||
TAN | ||
ASCII | ||
OCTET_POSITION | ||
データ列値関数 | LTRIM | |
RTRIM | ||
OCTET_SUBSTRING | ||
CHR(注2) | ||
日時値関数 | CNV_TIME | |
CNV_TIMESTAMP | ||
XMLQUERY関数 | ||
述語 | XMLEXISTS述語 | |
ROWNUM | ||
SQL2000以上 | ファンクションルーチン | |
ロール | ||
プロシジャ例外事象 | 条件宣言 | |
ハンドラ宣言 | ||
SIGNAL文 | ||
RESIGNAL文 | ||
SQL96以上 | トリガ | |
行識別子 | ||
並列指定 | ||
SQL95以上 | プロシジャルーチン | |
SQL92以上 | 定数 | 日時定数 |
時間隔定数 | ||
データ型 | 日時型 | |
時間隔型 | ||
BLOB型 | ||
順序定義 | ||
一時表定義 | ||
数値関数 | POSITION | |
EXTRACT | ||
CHAR_LENGTH | ||
CHARACTER_LENGTH | ||
OCTET_LENGTH | ||
データ列値関数 | SUBSTRING | |
UPPER | ||
LOWER | ||
TRIM | ||
日時値関数 | CURRENT_DATE | |
CURRENT_TIME | ||
CURRENT_TIMESTAMP | ||
CAST指定 | ||
CASE式 | NULLIF | |
COALESCE | ||
CASE | ||
結合表 | ||
カーソルのSCROLL指定 |
注1) LN関数のLOGは、CLI_SQL_LEVELに関係なく利用可能です。
注2) CHR関数のCHARは、CLI_SQL_LEVELに関係なく利用可能です。
ポイント
SQL2007の関数名と同名のファンクションルーチンを定義している場合、関数とファンクションルーチンの動作の優先順位は以下になります。
ファンクションルーチン名へのスキーマ名修飾の有無 | CLI_SQL_LEVEL | |
---|---|---|
SQL2007 | SQL2000 | |
スキーマ名修飾有 | ファンクションルーチン | ファンクションルーチン |
スキーマ名修飾無 | 関数 | ファンクションルーチン |
SQL文にSQL2007の関数名と同名のファンクションルーチンを指定している場合、関数が優先して動作することで、ファンクションルーチンの結果と異なる結果になる場合があります。
ファンクションルーチンの動作を優先する場合は、CLI_SQL_LEVELにSQL2000を指定するか、ファンクションルーチン名をスキーマ名修飾してください。
予約語とSQL機能のレベルをSQL88とします。
予約語とSQL機能のレベルをSQL92とします。
予約語とSQL機能のレベルをSQL95とします。
予約語とSQL機能のレベルをSQL96とします。
予約語とSQL機能のレベルをSQL2000とします。
予約語とSQL機能のレベルをSQL2007とします。
参照
各予約語とSQL機能のレベルと、キーワードの関係については、“SQLリファレンス”を参照してください。
◆並列クエリに関する実行パラメタ
CLI_MAX_PARALLEL = (多重度)
SQL文でデータベースを並列に検索する場合の多重度を指定します。
SQL文でデータベースを並列に検索できるのは、問合せ式で並列指定を指定した場合です。表のDSIの数が、指定した多重度よりも少ない場合は、DSIの数を多重度として並列検索を行います。
なお、この実行パラメタは、サーバ用の動作環境ファイルのPARALLEL_SCANに“YES”を指定した場合、ODOSのオプションで設定できるパラメタのCLI_PARALLEL_SCANに“YES”を指定した場合、またはSQL文の問合せ式に並列指定“PARALLEL”を指定した場合に有効となります。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、n多重(注)で並列検索を行います。
注意
OSまたは仮想OSが認識している搭載CPUコア数×2が設定されます。ただし、RDB構成パラメタファイルにてRDBCPUNUMが指定されている場合は、RDBCPUNUM×2が設定されます。
SQL文でデータベースを並列に検索する場合の多重度を2~100の範囲で指定します。
CLI_PARALLEL_SCAN = ({YES | NO})
アプリケーション単位またはコネクション単位に、データベースを並列に検索するか否かを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が指定されたものとみなします。
CLI_PARALLEL_SCAN = (NO)
データベースを並列に検索します。この場合、そのアプリケーションの問合せを並列検索で実行できます。
ただし、以下のいずれかの条件を満たす場合、並列検索は実行されず従来のアクセス手順でデータベースにアクセスします。
表がDSI分割されていない、または1つのDSIに対するアクセスの場合
クラスタキーを利用したデータベースアクセスが可能な場合
探索条件にROW_IDを指定した検索の場合
インデックスを利用したデータベースアクセスが可能な場合
データベースを並列に検索しません。
◆その他に関する実行パラメタ
CLI_ARC_FULL = ({RETURN | WAIT})
アーカイブログファイルが満杯状態になったとき、エラー復帰するか否かを指定します。
本実行パラメタの設定は、“表4.1 ODOSのオプションで設定できるパラメタの種類”の優先順位に従います。いずれの動作環境ファイルにも本実行パラメタが指定されなかった場合、以下の値が設定されます。
CLI_ARC_FULL = (RETURN )
エラーとしてアプリケーションに復帰します。
空きのアーカイブログファイルが作成されるまで待ちます。
注意
“WAIT”を指定した場合、空きのアーカイブログファイルが作成されるまでアプリケーションは無応答状態となりますので注意してください。
本実行パラメタの指定が、互いに異なる複数のアプリケーションが同時に同じDSIを扱うような運用はしないでください。例えば、以下の事象が発生する場合があります。
トランザクションAは、CLI_ARC_FULL=RETURNを設定し、アーカイブログ満杯の状態であるとします。トランザクションBは、CLI_ARC_FULL=WAITを設定し、アーカイブログ満杯の状態で資源を占有しているとします。このとき、トランザクションBは、空きのアーカイブログファイルが作成されるまで待ちます。同じ資源にアクセスしているトランザクションAは、トランザクションBの終了を待つため、CLI_ARC_FULL=RETURNを設定しているにもかかわらず、無応答状態になります。
この場合は、rdblkinfコマンドのlオプションやrdblogコマンドのVオプションかつaオプションで排他やアーカイブログの状況を確認できます。また、アーカイブログに関する以下のシステムメッセージが表示されます。これらの情報をもとに、バックアップ可能なアーカイブログファイルをバックアップするか、または新規にアーカイブログファイルを追加して対処してください。
rdb: WARNING: qdg13336w: 転送可能なアーカイブログ域が不足しています rdb: ERROR: qdg03132u: アーカイブログファイルが満杯です
以下のいずれかの処理中にシステムロググループまたはユーザロググループのアーカイブログファイルが満杯状態になった場合の振る舞いについては、本実行パラメタの指定に関わらずシステム用の動作環境ファイルに指定したARC_FULLパラメタに従います。
SQL文の実行で自動容量拡張が動作する。
SQL文中に順序を直接指定して番号を採番する。
表定義のDEFAULT句に順序を指定して、自動的に取得した値を表に挿入する。