ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(ODBCドライバ編)

4.5 アプリケーションのチューニング

Symfoware/RDBのクライアント用の動作環境ファイルに相当する指定を、Symfoware ODOSセットアップの[Symfoware/RDBオプション設定]画面で指定することができます。なお、オプションで設定できるパラメタ名の先頭文字“CLI_”を削除したパラメタ名が、Symfoware Serverのクライアント用の動作環境ファイルのパラメタと一致しています。

データソースに指定したオプション値はコネクション接続時に読み込まれます。

Symfoware ODOS セットアップの詳細については、“3.1 ODBCデータソースの登録”を参照してください。

動作環境パラメタの指定の優先順位

動作環境の設定項目の中には、システム用の動作環境ファイル、サーバ用の動作環境ファイルおよびODOSのオプションで設定できるパラメタで、重複して指定できるパラメタがあります。重複して指定した場合の優先順位は、以下のとおりです。

  1. サーバ用の動作環境ファイル

  2. ODOSのオプションで設定できるパラメタ

  3. システム用の動作環境ファイル

【パラメタ】

ODOSを利用するアプリケーションから指定可能なパラメタは以下となります。

分類

パラメタ

概要

通信

CLI_BUFFER_SIZE

通信に使用するバッファサイズ

CLI_SERVER_ENV_FILE

使用するサーバ用の動作環境ファイル

CLI_TRAN_SPEC

SQLエラー発生時のトランザクション

CLI_TRAN_TIME_LIMIT

1つのトランザクションの最大使用可能時間

CLI_WAIT_TIME

通信時の待ち時間

作業領域など

CLI_DESCRIPTOR_SPEC

SQL記述子の情報

CLI_MAX_SQL

同時に操作できるSQL文の数

CLI_OPL_BUFFER_SIZE

SQL文の実行手順を格納しておくバッファのサイズ

CLI_RESULT_BUFFER

一括FETCHを行う場合のバッファの数とサイズ

CLI_SORT_MEM_SIZE

作業用ソート領域として使うメモリサイズ

CLI_WORK_ALLOC_SPACESIZE

作業用ソート領域および作業用テーブルとして使うファイルサイズ

CLI_WORK_MEM_SIZE

作業用テーブルとして使うメモリのサイズ

CLI_WORK_PATH

作業用テーブルおよび作業用ソート領域のパス

データ処理

CLI_CAL_ERROR

代入処理でオーバフローが起きた場合の処理

CLI_CHARACTER_TRANSLATE

文字コードの変換をクライアントで行うか否か

表・インデックス

CLI_DEFAULT_INDEX_SIZE

格納構造定義を簡略化したインデックスを定義する場合のインデックスのデータ格納域の初期量、拡張量、ページ長など

CLI_DEFAULT_OBJECT_TABLE_SIZE

格納構造定義を簡略化した表を定義する場合のOBJECT構造の表のデータ格納域の初期量、拡張量、ページ長など

CLI_DEFAULT_TABLE_SIZE

格納構造定義を簡略化した表を定義する場合の表のデータ格納域の初期量、拡張量、ページ長など

CLI_DSI_EXPAND_POINT

DSIの容量拡張を起動するか否か

CLI_INCLUSION_DSI

アプリケーションで使用するDSIを限定する

CLI_TEMPORARY_INDEX_SIZE

一時表にインデックスを定義する場合のインデックスのデータ格納域の初期量、拡張量など

CLI_TEMPORARY_TABLE_SIZE

一時表を定義する場合の表のデータ格納域の初期量、拡張量など

アクセスプラン

CLI_ACCESS_PLAN

アプリケーション単位でアクセスプランを取得するか否かおよびSQL文に対するアドバイスを出力するか否か

性能情報

CLI_IGNORE_INDEX

インデックスを使用しないアクセスプランを選択するか否か

CLI_INACTIVE_INDEX_SCAN

非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択するか否か

CLI_JOIN_RULE

ジョインする方法

CLI_JOIN_ORDER

結合表と他の表のジョイン順

CLI_SCAN_KEY_ARITHMETIC_RANGE

四則演算の検索範囲について、インデックスの範囲検索、または、クラスタキー検索を行うか否か

CLI_SCAN_KEY_CAST

探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行うか否か

CLI_SORT_HASHAREA_SIZE

ソート処理がレコードをハッシングして格納するための領域サイズ

CLI_SQL_TRACE

アプリケーション単位でSQL性能情報を取得するか否か

CLI_SS_RATE

述語ごとの検索範囲の選択率の値

CLI_TID_SORT

インデックス検索と表データ取得のアクセスモデルでTIDソートを利用するか否か

CLI_TID_UNION

TIDユニオンマージのアクセスモデルを有効にするか否か

CLI_USQL_LOCK

UPDATE文:探索またはDELETE文:探索の更新標的レコードを位置づける部分の占有モード

排他

CLI_DSO_LOCK

使用するDSOの占有の単位、占有モード

CLI_ISOLATION_WAIT

占有待ちの方式

CLI_R_LOCK

占有の単位を行とするか否か

トランザクション

CLI_DEFAULT_ACCESS_MODE

トランザクションアクセスモードの初期値を指定する

CLI_DEFAULT_ISOLATION

独立性水準の初期値を指定する

デバッグ

CLI_ROUTINE_SNAP

ROUTINE_SNAP機能を利用するか否か

CLI_SQL_SNAP

SQL_SNAP機能を利用するか否か

リカバリ

CLI_RCV_MODE

ドライバのリカバリ水準を指定する

予約語とSQL機能

CLI_SQL_LEVEL

アプリケーションの予約語とSQL機能のレベルを設定する

並列クエリ

CLI_MAX_PARALLEL

データベースを並列に検索する場合の多重度

CLI_PARALLEL_SCAN

アプリケーション単位またはコネクション単位にデータベースを並列に検索するか否か

その他

CLI_ARC_FULL

アーカイブログ満杯時にエラー復帰するか否か

CLI_ACCESS_PLAN

アプリケーション単位でアクセスプランを取得するかどうかを指定します。

指定形式

CLI_ACCESS_PLAN = ({ON | OFF},ファイル名[,[出力レベル][,[SQLアドバイザ出力レベル]]])

省略時

CLI_ACCESS_PLAN = (OFF)

パラメタの意味
ON:

アクセスプラン取得機能を利用する場合に指定します。

OFF:

アクセスプラン取得機能を利用しない場合に指定します。

ファイル名:

出力先のサーバ側のファイル名を、絶対パスで指定します。指定されたファイルがすでに存在する場合は、情報を追加して出力します。

出力レベル:

出力レベルには1または2を指定します。

1を指定すると、アクセスプランのセクション情報のみを出力し、2を指定すると、セクション内の各エレメント詳細情報も出力します。

省略した場合は、2が指定されたものとみなします。

SQLアドバイザ出力レベル:

SQLアドバイザ出力レベルには、“ADVICE”または“NOADVICE”を指定します。

“ADVICE”を指定すると、SQL文に対するアドバイスを出力します。“NOADVICE”を指定すると、SQL文に対するアドバイスを出力しません。省略した場合は、“NOADVICE”が指定されたものとみなします。

CLI_ARC_FULL

アーカイブログファイルが満杯状態になったとき、エラー復帰するか否かを指定します。

指定形式

CLI_ARC_FULL = ({RETURN | WAIT})

省略時

省略した場合は、システム用の動作環境ファイルにおけるARC_FULLの指定に従います。

パラメタの意味
RETURN:

エラーとしてアプリケーションに復帰します。

WAIT:

空きのアーカイブログファイルが作成されるまで待ちます。

注意

  • “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句に順序を指定して、自動的に取得した値を表に挿入する。

CLI_BUFFER_SIZE

通信に利用するバッファサイズを指定します。

単位はキロバイトです。

指定形式

CLI_BUFFER_SIZE = ([初期量][,拡張量])

パラメタの意味
初期量:

バッファの初期量を1~10240で指定します。

省略した場合、32になります。

拡張量:

拡張量を1~10240で指定します。

省略した場合、32になります。

CLI_CAL_ERROR

代入処理でオーバフローが発生した場合の処理を指定します。

指定形式

CLI_CAL_ERROR = ({REJECT | NULL})

省略時

CLI_CAL_ERROR = (REJECT)

パラメタの意味
REJECT:

例外エラーにします。

NULL:

演算結果をNULLにします。

CLI_CHARACTER_TRANSLATE

データベースシステムの文字コード系が、アプリケーションで使用している文字コード系と異なる場合、コード変換をクライアントで行うか、サーバで行うかを指定します。

サーバの負荷を少しでも減らしたい場合は、クライアントで行うよう指定します。

指定形式

CLI_CHARACTER_TRANSLATE = ({CLIENT | SERVER})

省略時

CLI_CHARACTER_TRANSLATE = (SERVER)

パラメタの意味
CLIENT:

クライアントでコード変換を行う場合に指定します。

SERVER:

サーバでコード変換を行う場合に指定します。

CLI_DEFAULT_ACCESS_MODE

トランザクションアクセスモードの初期値を指定します。

指定形式

CLI_DEFAULT_ACCESS_MODE = ({READ_ONLY | READ_WRITE})

省略時

CLI_DEFAULT_ACCESS_MODE = (READ_WRITE)

パラメタの意味
READ_ONLY:

トランザクションアクセスモードの初期値をREAD ONLYとします。

READ_WRITE:

トランザクションアクセスモードの初期値をREAD WRITEとします。

サーバ用の動作環境ファイルのDSO_LOCKまたはODOSのオプション値のCLI_DSO_LOCKを指定して、CLI_DEFAULT_ACCESS_MODEを指定した場合は、サーバ接続時にエラーが発生します。

CLI_DEFAULT_INDEX_SIZE

簡略化した格納構造定義を行う場合、インデックスのベース部とインデックス部の割り付け量、ページ長などを指定します。

指定形式

CLI_DEFAULT_INDEX_SIZE=(
                        ベース部ページ長,
                        インデックス部ページ長,
                        ベース部初期量,
                        インデックス部初期量
                        [,拡張量,拡張契機])

省略時

この実行パラメタを省略した場合は、システム用の動作環境ファイルにおけるDEFAULT_INDEX_SIZEの指定に従います。

パラメタの意味
ベース部ページ長:

ベース部のページ長を1、2、4、8、16、32の中から指定します。

インデックス部ページ長:

インデックス部のページ長を1、2、4、8、16、32の中から指定します。

ベース部初期量:

ベース部の初期量を2~2097150の範囲で指定します。

単位はキロバイトです。

インデックス部初期量:

インデックス部の初期量を2~2097150の範囲で指定します。

単位はキロバイトです。

拡張量:

インデックスのベース部とインデックス部の拡張量を1~2097150の範囲で指定します。

単位はキロバイトです。

省略した場合、10240になります。

拡張契機:

ベース部およびインデックス部の拡張を行うタイミングとして、DSIの空き容量を0~2097150の範囲で指定します。

インデックスのDSIの空き容量がここで指定した値になると、ベース部およびインデックス部の拡張が行われます。

単位はキロバイトです。

省略した場合、0になります。

注意

  • 自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。

  • ベース部の5分の1がインデックス部のページ長の倍数でない場合、インデックス部のページ長の倍数に繰り上げます。

CLI_DEFAULT_ISOLATION

独立性水準の初期値を指定します。

指定形式

CLI_DEFAULT_ISOLATION = ([独立性水準1][,独立性水準2])

独立性水準1および独立性水準2に指定可能な値は以下のとおりです。

  • DEFAULT

  • READ_UNCOMMITTED

  • READ_COMMITTED

  • REPEATABLE_READ

  • SERIALIZABLE

省略時

CLI_DEFAULT_ISOLATION = (DEFAULT,DEFAULT)

パラメタの意味
独立性水準1:

トランザクションアクセスモードがREAD ONLYの時の独立性水準の値を指定します。

省略した場合、DEFAULTになります。

独立性水準2:

トランザクションアクセスモードがREAD WRITEの時の独立性水準の値を指定します。

省略した場合、DEFAULTになります。

独立性水準1および独立性水準2に指定する値の意味は以下のとおりです。

DEFAULT:

独立性水準の初期値をシステムの初期値とします。

READ_UNCOMMITTED:

独立性水準の初期値をREAD UNCOMMITTEDとします。

READ_COMMITTED:

独立性水準の初期値をREAD COMMITTEDとします。

REPEATABLE_READ:

独立性水準の初期値をREPEATABLE READとします。

SERIALIZABLE:

独立性水準の初期値をSERIALIZABLEとします。

注意

  • CLI_DEFAULT_ACCESS_MODEにREAD_ONLYを指定した場合、独立性水準はCLI_DEFAULT_ISOLATIONの指定に関係なくREAD UNCOMMITTEDとなります。

  • システム用の動作環境ファイルのR_LOCKがNOまたはODOSのオプション値のCLI_R_LOCKがNOで、CLI_DEFAULT_ISOLATIONを省略するか、DEFAULTまたはREPEATABLE_READを指定した場合は、独立性水準はSERIALIZABLEとなります。

  • システム用の動作環境ファイルのR_LOCKがYESまたはODOSのオプション値のCLI_R_LOCKがYESで、CLI_DEFAULT_ISOLATIONを省略するか、DEFAULTまたはSERIALIZABLEを指定した場合は、独立性水準はREPEATABLE READとなります。

  • サーバ用の動作環境ファイルのDSO_LOCKまたはODOSのオプション値のCLI_DSO_LOCKを指定して、CLI_DEFAULT_ISOLATIONを指定した場合は、サーバ接続時にエラーが発生します。

CLI_DEFAULT_OBJECT_TABLE_SIZE

簡略化した格納構造定義を行う場合、OBJECT構造の表の、データ格納域の割り付け量、ページ長などを指定します。

指定形式

CLI_DEFAULT_OBJECT_TABLE_SIZE = (
                                  ページ長,
                                  初期量
                                  [,拡張量,拡張契機])

省略時

この実行パラメタを省略した場合は、システム用の動作環境ファイルにおけるDEFAULT_OBJECT_TABLE_SIZEの指定に従います。

パラメタの意味
ページ長:

データ格納域のページ長を指定します。

必ず32を指定します。

初期量:

データ格納域の初期量を2~2097150の範囲で指定します。

単位はキロバイトです。

拡張量:

データ格納域の拡張量を1~2097150の範囲で指定します。

単位はキロバイトです。

省略した場合、32768になります。

拡張契機:

データ格納域の拡張を行うタイミングとして、表のDSIの空き容量を0~2097150の範囲で指定します。

表のDSIの空き容量がここで指定した値になると、データ格納域の拡張が行われます。

単位はキロバイトです。

省略した場合、0になります。

注意

自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。

CLI_DEFAULT_TABLE_SIZE

簡略化した格納構造定義を行う場合、表のデータ格納域の割り付け量、ページ長などを指定します。

指定形式

    CLI_DEFAULT_TABLE_SIZE = (
                              ページ長,
                              初期量
                              [,拡張量,拡張契機])

省略時

この実行パラメタを省略した場合は、システム用の動作環境ファイルにおけるDEFAULT_TABLE_SIZEの指定に従います。

パラメタの意味
ページ長:

データ格納域のページ長を1、2、4、8、16、32の中から指定します。

初期量:

データ格納域の初期量を2~2097150の範囲で指定します。

単位はキロバイトです。

拡張量:

データ格納域の拡張量を1~2097150の範囲で指定します。

単位はキロバイトです。

省略した場合、10240になります。

拡張契機:

データ格納域の拡張を行うタイミングとして、表のDSIの空き容量を0~2097150の範囲で指定します。

表のDSIの空き容量がここで指定した値になると、データ格納域の拡張が行われます。

単位はキロバイトです。

省略した場合、0になります。

注意

自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。

CLI_DESCRIPTOR_SPEC

記述子の情報を指定します。

指定形式

CLI_DESCRIPTOR_SPEC = (列数の初期値)

省略時

CLI_DESCRIPTOR_SPEC = (100)

パラメタの意味
列数の初期値:

動的SQLのSQL記述子獲得時の列数の初期値を指定します。指定できる値は、1~32767までの値です。

CLI_DSI_EXPAND_POINT

データ操作で、DSIに指定された拡張契機(rdbalmdsiコマンドまたはDSI定義文で定義します)を無視するか否かを指定します。

指定形式

CLI_DSI_EXPAND_POINT=({ON | OFF})

省略時

CLI_DSI_EXPAND_POINT=(ON)

パラメタの意味
ON:

DSIに定義された拡張契機は有効になります。

データ操作で、DSIの空きページ容量が拡張契機に達した時点で、領域を拡張します。

OFF:

DSIに定義された拡張契機は無効になります。

データ操作で、DSIの空きページ容量が拡張契機に達しても、領域を拡張しません。この場合、DSIの空き領域が枯渇した時点で、領域を拡張します。

CLI_DSO_LOCK

使用するDSOおよびその占有の単位、占有モードを指定します。

CLI_DSO_LOCKが指定された場合、SET TRANSACTION文は指定できません。

また、システム用の動作環境ファイルのR_LOCKおよびODOSのオプション値のCLI_R_LOCKの値により、CLI_DSO_LOCKを指定できない場合があります。以下にCLI_DSO_LOCKとR_LOCKおよびCLI_R_LOCKの関係を示します。

ODOSのオプション値のCLI_R_LOCK

システム用の動作環境ファイルのR_LOCK

CLI_DSO_LOCKの指定

占有単位

NO

NO

指定可

CLI_DSO_LOCKの指定による

YES

指定可

CLI_DSO_LOCKの指定による

YES

NO

指定不可

行単位で占有(注)

YES

指定不可

行単位で占有(注)

省略

NO

指定可

CLI_DSO_LOCKの指定による

YES

指定不可

行単位で占有(注)

注) CLI_DSO_LOCKを指定した場合、データベースへの接続時にエラーとなります。

指定形式

CLI_DSO_LOCK = (DSO名[/[P][占有モード]][,DSO名[/[P][占有モード]]・・・])

パラメタの意味
DSO名:

使用するDSO名を以下の形式で指定します。

      データベース名.DSO名

P:

DSOの占有単位をページにします。

省略した場合、占有の単位はDSIになります。

DSO名に指定されたDSOにPRECEDENCE(1)が指定されている場合、本パラメタは指定できません。

占有モード:

占有のモードとして以下のどちらかを指定します。省略した場合、EXになります。

EX:

非共有モードの排他を行います。

SH:

共有モードの排他を行います。

CLI_IGNORE_INDEX

データベースを検索する時に、インデックスを使用せずにデータベースにアクセスするか否かを指定します。データウェアハウジングにおいて大量のデータを検索および集計する場合には、インデックスだけではデータが絞りきれず、インデックスを使う分だけ無駄なオーバヘッドが発生することがあります。このような場合は、当パラメタにYESを指定することにより、表の全件検索または並列スキャンのアクセスモデルを採用します。

指定形式

CLI_IGNORE_INDEX = ({YES | NO})

省略時

CLI_IGNORE_INDEX = (NO)

パラメタの意味
YES:

インデックスを使用しないアクセスモデルを選択する。

NO:

インデックスが使用できる時は、インデックスを使用したアクセスモデルを選択する。

CLI_INACTIVE_INDEX_SCAN

データベースを検索する時に、非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択するか否かを指定します。インデックスを非活性状態とし、一括更新処理でインデックスを更新しない高速なバッチ処理を行うアプリケーションの場合、当パラメタにNOを指定してください。YESが指定されている場合、バッチ処理がエラーとなる場合があります。

指定形式

CLI_INACTIVE_INDEX_SCAN = ({YES | NO})

省略時

CLI_INACTIVE_INDEX_SCAN = (YES)

パラメタの意味
YES:

非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択する。

NO:

非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択しない。

CLI_INCLUSION_DSI

DSIを限定したい表のDSI名を指定します。

限定されたDSIを含む表に対しては、そのDSIだけがデータ操作の範囲となります。また、このパラメタの指定により、探索条件の記述が省略ができます。なお、DSIを限定していない表に対しては、データ操作をすることができます。

指定形式

CLI_INCLUSION_DSI = (
                     データベース名.DSI名
                     [,データベース名.DSI名・・・])

パラメタの意味
データベース名.DSI名:

限定したい表のDSI名を指定します。

CLI_ISOLATION_WAIT

あるトランザクションで資源にアクセスしようとしたとき、別のトランザクションがその資源を占有していた場合に、資源の占有が解除されるまで待つかどうかを指定します。

指定形式

CLI_ISOLATION_WAIT = ({WAIT | REJECT})

省略時

CLI_ISOLATION_WAIT = (WAIT)

パラメタの意味
WAIT:

資源の占有が解除されるまで待ちます。

REJECT:

エラーとして復帰します。

CLI_JOIN_RULE

ジョインする方法を指定します。

指定形式

CLI_JOIN_RULE = ({AUTO | MERGE | FETCH})

省略時

CLI_JOIN_RULE = (AUTO)

パラメタの意味
AUTO:

Symfoware/RDBが自動的に選択する。

MERGE:

マージジョインのアクセスモデルを優先する。

FETCH:

フェッチジョインのアクセスモデルを優先する。

CLI_JOIN_ORDER

結合表と他の表をジョインする場合のジョイン順を指定します。

指定形式

CLI_JOIN_ORDER = ({AUTO | INSIDE | OUTSIDE})

省略時

CLI_JOIN_ORDER = (INSIDE)

パラメタの意味
AUTO:

Symfoware/RDBが自動的に選択する。

INSIDE:

結合表から先にジョインする。

OUTSIDE:

結合表の中に指定した表と結合表の外に指定した表から先にジョインする。

CLI_MAX_PARALLEL

SQL文でデータベースを並列に検索する場合の多重度を指定します。

SQL文でデータベースを並列に検索できるのは、単一行SELECT文またはカーソル宣言で並列指定を指定した場合です。

表のDSIの数が、指定した多重度よりも少ない場合は、DSIの数を多重度として並列検索を行います。

指定形式

CLI_MAX_PARALLEL = (多重度)

省略時

省略した場合は、システム用の動作環境ファイルにおけるMAX_PARALLELの指定に従って並列検索(並列クエリ)を行います。

パラメタの意味
多重度:

2~100の範囲で指定します。

CLI_MAX_SQL

同一コネクションオブジェクト内で同時に作成できる、以下のオブジェクトの数を指定します。

  • RDOの場合:rdoQueryオブジェクト、rdoResultsetオブジェクト

  • ADOの場合:Commandオブジェクト、Recordsetオブジェクト

  • ADO.NETの場合:OdbcCommandオブジェクト、OdbcDataAdapterオブジェクト

指定形式

CLI_MAX_SQL = (オブジェクトの数)

省略時

CLI_MAX_SQL = (1024)

パラメタの意味
オブジェクトの数:

2~32000の範囲で指定します。

CLI_OPL_BUFFER_SIZE

同一SQL文を複数回実行するときに、最初の実行で作成した処理手順を使用することによって処理効率の向上を図っています。

本パラメタは、このSQLの処理手順を格納するバッファのサイズを指定します。

この領域は、サーバ側で獲得されます。

指定形式

CLI_OPL_BUFFER_SIZE = (バッファサイズ)

省略時

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_PARALLEL_SCAN

アプリケーション単位またはコネクション単位に、データベースを並列に検索する(並列クエリ)か否かを指定します。

指定形式

CLI_PARALLEL_SCAN = ({YES | NO})

省略時

CLI_PARALLEL_SCAN = (NO)

パラメタの意味
YES:

データベースを並列に検索します。この場合、そのアプリケーションの単一行SELECT文およびOPEN文を並列検索で実行できます。

ただし、以下のいずれかの条件を満たす場合、並列検索は実行されず従来のアクセス手順でデータベースにアクセスします。

- 表がDSI分割されていない、または1つのDSIに対するアクセスの場合

- クラスタキーを利用したデータベースアクセスが可能な場合

- 探索条件にROW_IDを指定した検索の場合

- インデックスを利用したデータベースアクセスが可能な場合

NO:

データベースを並列に検索しません。

CLI_RCV_MODE

ドライバのリカバリ水準を指定します。

指定形式

CLI_RCV_MODE = ({RCV | NRCV})

省略時

CLI_RCV_MODE = (RCV)

パラメタの意味
RCV:

リカバリ機能を利用します。

この場合、リカバリを適用しない(rdbrtrコマンドで利用規定に-nを指定している)データベースをアクセスすることはできますが、ログは取得されません。

NRCV:

リカバリ機能を利用しません。

この場合、リカバリを適用する(rdbrtrコマンドで利用規定に-nを指定していない)データベースを更新することはできません。

CLI_R_LOCK

占有の単位を行にするかどうかを指定します。

CLI_R_LOCKにYESが指定された場合、以下の指定はできません。

  • サーバ用の動作環境ファイルのDSO_LOCK

  • ODOSのオプション値のCLI_DSO_LOCK

指定形式

CLI_R_LOCK = ({YES | NO})

省略時

省略した場合は、システム用の動作環境ファイルの、R_LOCKの指定に従います。

パラメタの意味
YES:

占有の単位を行にします。

NO:

占有の単位は、CLI_DSO_LOCKまたはDSO_LOCKの指定に従います。

このパラメタを指定し、かつCLI_DSO_LOCKおよびDSO_LOCKが指定されていない場合は、Symfoware/RDBによって自動的に占有の単位が選択されます。

注意

  • システム用の動作環境ファイルのR_LOCKがNOまたはODOSのオプション値のCLI_R_LOCKがNOの場合、CLI_DEFAULT_ISOLATIONまたはSET TRANSACTION文にREPEATABLE_READを指定しても、独立性水準はSERIALIZABLEになります。

  • システム用の動作環境ファイルのR_LOCKがYESまたはODOSのオプション値のCLI_R_LOCKがYESの場合、CLI_DEFAULT_ISOLATIONまたはSET TRANSACTION文にSERIALIZABLEを指定しても、独立性水準はREPEATABLE READになります。

  • システム用の動作環境ファイルのR_LOCKがNOまたはODOSのオプション値のCLI_R_LOCKがNOの場合、DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の表にアクセスするアプリケーションの排他の単位はDSIになります。

CLI_ROUTINE_SNAP

ROUTINE_SNAP機能を利用するかどうかを指定します。

ROUTINE_SNAP機能は、SQL手続き文の実行情報をファイルに出力する機能です。

指定形式

CLI_ROUTINE_SNAP = ({ON | OFF},ファイル名[,出力レベル])

省略時

CLI_ROUTINE_SNAP = (OFF)

パラメタの意味
ON:

ROUTINE_SNAP機能を利用する場合に指定します。

OFF:

ROUTINE_SNAP機能を利用しない場合に指定します。

ファイル名:

SQL手続き文の実行情報の出力先のサーバ側のファイル名を、絶対パスで指定します。

指定されたファイルがすでに存在する場合、情報を追加して出力します。

出力レベル:

出力する情報のレベルとして、1または2を指定します。

省略した場合、2になります。

CLI_RESULT_BUFFER

ODOSは、データを取り出すときの性能を良くするため、複数の行を一度に取り出します。

この行を格納するバッファの数とサイズを指定します。

単位はキロバイトです。

また、1つのカーソルが1つのバッファを使用するので、複数のバッファを用意すれば、複数カーソルの操作の性能を良くすることができます。

バッファを使用しない場合、個数に0を指定します。

この領域は、クライアント側とサーバ側で獲得されます。

バッファサイズを大きくするほど性能は良くなりますが、メモリが圧迫され、他のアプリケーションの実行に支障が発生する場合があります。

バッファサイズを大きくする場合、メモリの空き容量に注意してください。

指定形式

CLI_RESULT_BUFFER = ([個数][,サイズ])

省略時

CLI_RESULT_BUFFER = (2,32)

パラメタの意味
個数:

使用するバッファの個数を0~255で指定します。

サイズ:

使用するバッファのサイズを1~10240で指定します。

単位はキロバイトです。

CLI_SCAN_KEY_ARITHMETIC_RANGE

四則演算の検索範囲について、インデックス範囲検索、または、クラスタキーの検索を行うか否かを指定します。

指定形式

CLI_SCAN_KEY_ARITHMETIC_RANGE = ({YES | NO})

省略値

CLI_SCAN_KEY_ARITHMETIC_RANGE = (YES)

パラメタの意味
YES:

四則演算の検索値について、インデックス範囲検索、または、クラスタキーの検索を行います。

NO:

四則演算の検索値について、インデックス範囲検索、または、クラスタキーの検索を行いません。

CLI_SCAN_KEY_CAST

探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行うか否かを指定します。

指定形式

CLI_SCAN_KEY_CAST = ({YES | NO})

省略値

CLI_SCAN_KEY_CAST = (YES)

パラメタの意味
YES:

探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行います。

NO:

探索条件に指定したインデックスキーまたは、クラスタキーで範囲検索を行います。

CLI_SERVER_ENV_FILE

使用するサーバ用の動作環境ファイル名を指定します。

コネクション(データベース環境)ごとにサーバの実行環境を変更する場合に指定します。

指定形式

CLI_SERVER_ENV_FILE = (SQLサーバ名,ファイル名)

パラメタの意味
SQLサーバ名:

接続するデータ資源名を記述します。

ファイル名:

サーバ用の動作環境ファイル名を、絶対パスで指定します。

CLI_SORT_HASHAREA_SIZE

ソート処理がレコードをハッシングして格納するための領域のサイズです。

単位はキロバイトです。

指定形式

CLI_SORT_HASHAREA_SIZE = (メモリサイズ)

省略時

省略した場合は、メモリ上のすべてのレコードをハッシングして格納します。

パラメタの意味
メモリサイズ:

2112~2097150の範囲で指定します。

CLI_SORT_MEM_SIZE

ソート処理のために作業用ソート領域としてサーバ側で使用するメモリの大きさを指定します。

省略した場合、システム用の動作環境ファイルにおけるSORT_MEM_SIZEの指定に従います。

この領域は、RDBプロセスのローカルメモリにセション単位に獲得されます。

指定形式

CLI_SORT_MEM_SIZE = (メモリサイズ)

パラメタの意味
メモリサイズ:

サーバ側で使用するメモリの大きさを64~2097150の範囲で指定します。

単位はキロバイトです。

CLI_SQL_LEVEL

予約語とSQL機能のレベルを設定します。

予約語とSQL機能のレベルを設定することで、キーワードの範囲と利用可能なSQLの機能を変更できます。

SQLの機能とそれを利用可能なレベルとの関係を以下に示します。

表に記載のない機能は、CLI_SQL_LEVELに関係なく利用可能です。

表4.1 CLI_SQL_LEVELと利用可能なSQLの機能一覧

CLI_SQL_LEVEL

SQLの機能

SQL2007

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指定

ポイント

SQL2007の関数名と同名のファンクションルーチンを定義している場合、関数とファンクションルーチンの動作の優先順位は以下になります。

ファンクションルーチン名へのスキーマ名修飾の有無

CLI_SQL_LEVEL

SQL2007

SQL2000

スキーマ名修飾有

ファンクションルーチン

ファンクションルーチン

スキーマ名修飾無

関数

ファンクションルーチン

SQL文にSQL2007の関数名と同名のファンクションルーチンを指定している場合、関数が優先して動作することで、ファンクションルーチンの結果と異なる結果になる場合があります。

ファンクションルーチンの動作を優先する場合は、CLI_SQL_LEVELにSQL2000を指定するか、ファンクションルーチン名をスキーマ名修飾してください。

指定形式

CLI_SQL_LEVEL = ({SQL88 | SQL92 | SQL95 | SQL96 | SQL2000 | SQL2007})

省略時

CLI_SQL_LEVEL = (SQL2007)

パラメタの意味
SQL88:

予約語とSQL機能のレベルをSQL88とします。

SQL92:

予約語とSQL機能のレベルをSQL92とします。

SQL95:

予約語とSQL機能のレベルをSQL95とします。

SQL96:

予約語とSQL機能のレベルをSQL96とします。

SQL2000:

予約語とSQL機能のレベルをSQL2000とします。

SQL2007:

予約語とSQL機能のレベルをSQL2007とします。

CLI_SQL_SNAP

SQL_SNAP機能を利用するかどうかを指定します。

SQL_SNAP機能は、アプリケーションが実行したSQL文の情報をファイルに出力する機能です。

SQL_SNAP機能は情報をファイルに出力するため、使用するとドライバの性能が悪くなります。必要なときにだけ指定してください。

指定形式

CLI_SQL_SNAP=(
              出力モード
              [,[ファイル名]
              [,[出力レベル]
              [,[繰り返し幅]
              [,[プロセス指定]]]]])

省略時

CLI_SQL_SNAP=(OFF)

パラメタの意味
出力モード:

SQL_SNAP機能を利用するかどうかを指定します。

ON:

SQL_SNAP機能を利用する場合に指定します。

OFF:

SQL_SNAP機能を利用しない場合に指定します。

ファイル名:

出力するスナップファイルのファイル名を指定します。

ファイル名にはパスと拡張子名を指定できます。

ファイル名が省略された場合、sqlexec.snpというファイル名になります。

拡張子が省略された場合、“.snp”という拡張子名になります。

パスが省略された場合、実行するアプリケーションのカレントディレクトリに出力します。

出力レベル:

スナップファイルの接続レベルでの出力単位を指定します。

省略した場合、CONになります。

DSN:

データソース単位でスナップファイルを出力します。

CON:

コネクション単位でスナップファイルを出力します。

このパラメタが指定された場合、コネクション単位でファイル名を区別するために、指定したファイル名の後ろにコネクションを識別する10進の数値が付加されます。

例:コネクションが2つ存在する場合

指定したファイル名
    sqlexec.snp
実際のファイル名
    sqlexec_2.snp
    sqlexec_5.snp
繰り返し幅:

スナップファイルの出力方法を1~32767で指定します。

省略した場合、0になります。

0:

接続から切断するまでの間に実行したAPIのスナップ情報をすべて出力します。

0以外:

指定された値だけAPIのスナップ情報を出力します。

プロセス指定:

スナップファイルのシステムレベルでの出力単位を指定します。

省略した場合、SYSになります。

SYS:

システム単位でスナップファイルを出力します。

PRCS:

プロセス単位でスナップファイルを出力します。

このパラメタが指定された場合、プロセス単位でファイル名を区別するために、指定したファイル名の後ろにプロセスを識別する16進の数値が付加されます。

例:プロセスが2つ存在する場合

指定したファイル名
    sqlexec.snp
実際のファイル名
    sqlexec_2435.snp
    sqlexec_5654.snp
CLI_SQL_TRACE

アプリケーション単位でSQL性能情報を取得するかどうかを指定します。

指定形式

CLI_SQL_TRACE = ({ON | OFF},性能情報ファイル名[,出力レベル])

省略時

CLI_SQL_TRACE = (OFF)

パラメタの意味
ON:

SQL性能情報取得機能を利用する場合に指定します。

OFF:

SQL性能情報取得機能を利用しない場合に指定します。

性能情報ファイル名:

出力先のサーバ側のファイル名を、絶対パスで指定します。指定されたファイルがすでに存在する場合は、情報を追加して出力します。

複数のアプリケーションが動作する場合は、個別のトレース情報を出力しません。

アプリケーションがマルチスレッド環境で動作する場合は、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。

出力レベル:

出力レベルには1または2を指定します。1を指定すると、DSOごとに集計された性能情報を出力します。2を指定すると、DSI単位の情報までも出力します。

省略した場合は、2が指定されたものとみなします。

CLI_SS_RATE

BETWEEN述語、比較述語、LIKE述語およびCONTAINS関数でインデックスを検索する時、インデックスの検索範囲の割合を0以上1以下の小数で指定します。値は、小数第6位まで指定できます。

指定形式

CLI_SS_RATE = ([選択率1][,[選択率2][,[選択率3][,[選択率4][,[選択率5]]]]])

省略時

選択率1の省略値は、0.2

選択率2の省略値は、0.25

選択率3の省略値は、0.5

選択率4の省略値は、0.4

選択率5の省略値は、0.0001

パラメタの意味
選択率1:

BETWEEN述語を指定した場合のインデックスの検索範囲。

選択率2:

比較述語“>”、“>=”、と“<”、“<=”でインデックスの検索開始位置および検索終了位置の両方が指定されている場合のインデックスの検索範囲。

選択率3:

比較述語“>”、“>=”、“<”、“<=”でインデックスの検索開始位置または検索終了位置のみが指定されている場合のインデックスの検索範囲。

選択率4:

LIKE述語を指定した場合のインデックスの検索範囲。

選択率5:

CONTAINS関数を指定した場合のインデックスの検索範囲。

CLI_TEMPORARY_INDEX_SIZE

一時表にインデックスを定義する場合に、インデックスのベース部とインデックス部の割付け量を指定します。単位はキロバイトです。

指定形式

CLI_TEMPORARY_INDEX_SIZE = (ベース部初期量,インデックス部初期量[,拡張量,拡張契機])

省略時

この実行パラメタを省略した場合は、システム用の動作環境ファイルにおけるTEMPORARY_INDEX_SIZEの指定に従います。

パラメタの意味
ベース部初期量:

ベース部の初期量を64~2097150の範囲で指定します。

インデックス部初期量:

インデックス部の初期量を64~2097150の範囲で指定します。

拡張量:

インデックスのベース部の拡張量を32~2097150の範囲で指定します。インデックス部の拡張量は、ベース部の5分の1の値となります。

拡張契機:

ベース部およびインデックス部の拡張を行うタイミングとして、インデックスの空き容量を0~2097150の範囲で指定します。つまり、インデックスの空き容量がここで指定した値になると、インデックスのベース部およびインデックス部の拡張が行われます。

注意

  • 自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。

  • ベース部の5分の1がインデックス部のページ長の倍数でない場合、インデックス部のページ長の倍数に繰り上げます。

CLI_TEMPORARY_TABLE_SIZE

一時表を定義する場合に、表のデータ格納域の割付け量を指定します。

単位はキロバイトです。

指定形式

CLI_TEMPORARY_TABLE_SIZE = (初期量[,拡張量,拡張契機])

省略時

この実行パラメタを省略した場合は、システム用の動作環境ファイルにおけるTEMPORARY_TABLE_SIZEの指定に従います。

パラメタの意味
初期量:

データ格納域の初期量を64~2097150の範囲で指定します。

拡張量:

データ格納域の拡張量を32~2097150の範囲で指定します。

拡張契機:

データ格納域の拡張を行うタイミングとして、表の空き容量を0~2097150の範囲で指定します。

つまり、表の空き容量がここで指定した値になると、表のデータ格納域の拡張が行われます。

注意

自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。

CLI_TID_SORT

インデックス検索と表データ取得のアクセスモデルにおいて、TIDソートを利用するか否かを指定します。

指定形式

CLI_TID_SORT = ({YES | NO})

省略時

CLI_TID_SORT = (YES)

パラメタの意味
YES:

TIDソートを利用する。

NO:

TIDソートを利用しない。

CLI_TID_UNION

TIDユニオンマージのアクセスモデルを有効にするか否かを指定します。

指定形式

CLI_TID_UNION = ({YES | NO})

省略時

CLI_TID_UNION = (YES)

パラメタの意味
YES:

TIDユニオンマージのアクセスモデルを有効にする。TIDユニオンマージが効果的と判断した場合に選択する。

NO:

TIDユニオンマージのアクセスモデルを有効にしない。

CLI_TRAN_SPEC

SQL文が実行中にエラーとなった場合のトランザクションの対処方法を指定します。

指定形式

CLI_TRAN_SPEC = ({NONE | TRANSACTION_ROLLBACK})

省略時

CLI_TRAN_SPEC = (NONE)

パラメタの意味
NONE:

各プラットフォームのトランザクションの仕様に従います。

TRANSACTION_ROLLBACK:

SQL文の実行がエラーとなった場合、トランザクションをロールバックします。

CLI_TRAN_TIME_LIMIT

1つのトランザクションで使用可能な時間を指定します。単位は秒です。0を指定すると無制限になります。指定時間を超過した場合には、トランザクションをロールバックして、接続中のコネクションを切断します。

指定形式

CLI_TRAN_TIME_LIMIT = (最大トランザクション実行時間)

省略時

CLI_TRAN_TIME_LIMIT = (0)

パラメタの意味
最大トランザクション実行時間:

最大トランザクション実行を0~32767で指定します。

CLI_USQL_LOCK

UPDATE文:探索およびDELETE文:探索において、更新レコードを検索するアクセスモデルの表の占有モードを指定します。

指定形式

CLI_USQL_LOCK = ({SH | EX})

省略時

CLI_USQL_LOCK = (SH)

パラメタの意味
SH:

更新標的レコードを検索するアクセスモデルで共用モードで表を占有する。

EX:

更新標的レコードを検索するアクセスモデルで非共用モードで表を占有する。

CLI_WAIT_TIME

サーバからのデータ受信の待ち時間を指定します。

単位は秒です。

このパラメタで指定された時間内に、サーバからのデータが受信できなかった場合、実行中のSQL文はエラーとなり、コネクションは切断されます。

0を指定した場合、データが受信できるまで待ちます。

指定形式

CLI_WAIT_TIME = (待ち時間)

省略時

CLI_WAIT_TIME = (0)

パラメタの意味
待ち時間:

待ち時間を0~32767で指定します。

CLI_WORK_ALLOC_SPACESIZE

作業用ソート領域および作業用テーブルとしてサーバ側で使用するファイルサイズの初期量、増分量、最大量、保持指定を指定します。単位はキロバイトです。

指定形式

CLI_WORK_ALLOC_SPACESIZE = ([初期量][,[増分量][,[最大量][,[保持指定]]]])

省略時

CLI_WORK_ALLOC_SPACESIZE = (10000,50000,,HOLD)

パラメタの意味
初期量:

作業用ソート領域および作業用テーブルとして外部ファイルを作成する場合の初期量を5000~50000の範囲で指定します。

省略した場合は10000が指定されたとみなします。

増分量:

作業用ソート領域および作業用テーブルとして作成した外部ファイルを拡張する場合の増分量を1000~100000の範囲で指定します。

省略した場合は、50000が指定されたとみなします。

最大量:

作業用ソート領域および作業用テーブルとして作成する外部ファイルの最大量を5000~2000000の範囲で指定します。

省略した場合は、WORK_PATHで指定したパス名のディスク容量となります。

保持指定:

以下の中から1つを選択します。省略した場合は、HOLDが指定されたものとみなします。

- FREE:作業用ソート領域および作業用テーブルとして作成した外部ファイルを初期量まで解放します。

- HOLD:作業用ソート領域および作業用テーブルとして作成した外部ファイルを保持します。

CLI_WORK_MEM_SIZE

作業用テーブルとしてサーバ側で使用するメモリのサイズです。

単位はキロバイトです。

省略した場合は、システム用の動作環境ファイルにおけるWORK_MEM_SIZEの指定に従います。この領域は、RDBプロセスのローカルメモリにセション単位に獲得されます。

指定形式

CLI_WORK_MEM_SIZE = (メモリサイズ)

パラメタの意味
メモリサイズ:

サーバ側で使用するメモリのサイズを64~2097150の範囲で指定します。

CLI_WORK_PATH

サーバ側で使用する作業用ソート領域および作業用テーブルとして、サーバ側での獲得先ディレクトリを指定します。

指定形式

CLI_WORK_PATH = (ワークパス名[,ワークパス名]・・・)

省略時

省略した場合、システム用の動作環境ファイルにおけるWORK_PATHの指定に従います。

パラメタの意味
ワークパス名:

サーバ側で使用する作業用ソート領域および作業用テーブルとして、サーバ側での獲得先ディレクトリを指定します。