ページの先頭行へ戻る
Symfoware Server V10.0.0 SQLTOOLユーザーズガイド

5.4 CHANGE ENV文

機能

現在の動作環境を変更する機能です。

CHANGE ENVを実行すると、それ以前に実行した以下の制御文は無効になります。

また、トランザクションが継続中の場合は、CHANGE ENV文が実行されるとそのトランザクションは終了され、ロールバックされます。トランザクションの扱いには注意してください。

記述形式

CHANGE ENV パラメタ指定[,パラメタ指定...]
パラメタ指定:

変更するパラメタを指定します。

一般規則

CHANGE ENV文により設定したパラメタの値は、rdbexecsqlコマンドを終了させるか、または再びCHANGE ENV文により変更するまで有効です。

変更できるパラメタ一覧
IGNORE_INDEX:

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

JOIN_RULE:

ジョインする方法

JOIN_ORDER:

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

MAX_PARALLEL:

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

PARALLEL_SCAN:

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

R_LOCK:

排他の単位を行とします

SCAN_KEY_ARITHMETIC_RANGE:

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

SCAN_KEY_CAST:

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

SORT_HASHAREA_SIZE:

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

SORT_MEM_SIZE:

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

SS_RATE:

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

TID_SORT:

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

TID_UNION:

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

USQL_LOCK:

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

WORK_MEM_SIZE:

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


上記のパラメタは、システム用の動作環境ファイル、クライアント用の動作環境ファイルおよびサーバ用の動作環境ファイルに指定することができます。

注意

  • IGNORE_INDEXおよびPARALLEL_SCANはシステム用の動作環境ファイルに記述することはできません。

  • R_LOCKは、サーバ用の動作環境ファイルに記述することはできません。

参照

以下のパラメタに関する詳細は、“アプリケーション開発ガイド(共通編)”を参照してください。

  • MAX_PARALLEL

  • PARALLEL_SCAN

  • R_LOCK

  • SORT_MEM_SIZE

  • WORK_MEM_SIZE

また、WebAdminまたはGUIでセットアップした場合、以下のパラメタは本節で説明しているパラメタの値と異なります。

  • JOIN_ORDER

  • R_LOCK

  • USQL_LOCK

参照

WebAdminまたはGUIでセットアップした場合のパラメタの詳細については、“セットアップガイド”の“セットアップ時の省略値”を参照してください。

注意

ASSIST指定を指定した場合、CHANGE ENV文または動作環境ファイルで設定した以下のパラメタよりもASSIST指定が優先されます。

  • IGNORE_INDEX

  • JOIN_RULE

  • JOIN_ORDER

  • SCAN_KEY_ARITHMETIC_RANGE

  • SCAN_KEY_CAST

  • SS_RATE

  • TID_SORT

  • TID_UNION

IGNORE_INDEX
指定形式

IGNORE_INDEX = ({YES | NO})

実行パラメタの意味

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

パラメタの意味
YES:

インデックスを使用しないアクセスプランを選択します。

NO:

インデックスが使用できるときは、インデックスを使用したアクセスプランを選択します。

JOIN_RULE
指定形式

JOIN_RULE = ({AUTO | MERGE | FETCH})

実行パラメタの意味

ジョインする方法を指定します。省略値はAUTOです。
ただし、SQL文にASSIST指定のJOIN_RULEを指定した場合、ASSIST指定が優先され、JOIN_RULEの指定に関わらず、ASSIST指定に指定されたジョイン方法に従います。

パラメタの意味
AUTO:

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

MERGE:

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

FETCH:

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

JOIN_ORDER
指定形式

JOIN_ORDER = ({AUTO | INSIDE | OUTSIDE})

実行パラメタの意味

結合表と他の表をジョインする場合のジョイン順を指定します。省略値はINSIDEです。
ただし、SQL文にASSIST指定のLEADING_TABLEを指定した場合、ASSIST指定が優先され、JOIN_ORDERの指定に関わらず、ASSIST指定に指定されたジョイン順に従います。

パラメタの意味
AUTO:

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

INSIDE:

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

OUTSIDE:

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

SCAN_KEY_ARITHMETIC_RANGE
指定形式

SCAN_KEY_ARITHMETIC_RANGE = ({YES | NO})

実行パラメタの意味

四則演算の検索範囲について、インデックス範囲検索やクラスタキーの検索を行います。省略値はYESです。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、SCAN_KEY_ARITHMETIC_RANGEの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。

パラメタの意味
YES:

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

NO:

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

SCAN_KEY_CAST
指定形式

SCAN_KEY_CAST = ({YES | NO})

実行パラメタの意味

インデックス構成列やクラスタキーが、WHERE句またはON句のCASTに指定されてもインデックスの範囲検索やクラスタキー検索を行います。省略値はYESです。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、SCAN_KEY_CASTの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。

パラメタの意味
YES:

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

NO:

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

SORT_HASHAREA_SIZE
指定形式

SORT_HASHAREA_SIZE = (メモリサイズ)

実行パラメタの意味

ソート処理がレコードをハッシングして格納するための領域のサイズです。2112~2097150の範囲で指定します。単位はキロバイトです。省略した場合は、メモリ上のすべてのレコードをハッシングして格納します。

SS_RATE
指定形式

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

実行パラメタの意味

BETWEEN述語、比較述語、LIKE述語およびCONTAINS関数でインデックスを検索するとき、インデックスの検索範囲の割合を指定します。小数点付きの小数(0≦n≦1)の範囲を指定します。値は、0以上1以下の小数を指定してください。小数第6位まで指定できます。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、SS_RATEの割合に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。

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

BETWEEN述語を指定した場合のインデックスの検索範囲。省略値は、0.2

選択率2:

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

選択率3:

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

選択率4:

LIKE述語を指定した場合のインデックスの検索範囲。省略値は、0.4

選択率5:

CONTAINS関数を指定した場合のインデックスの検索範囲。省略値は、0.0001

TID_SORT
指定形式

TID_SORT = ({YES | NO})

実行パラメタの意味

インデックス検索と表データ取得のアクセスモデルにおいて、TIDソートを利用するか否かを指定します。省略値はYESです。
ただし、SQL文にASSIST指定のFIRST_ROWSを指定した場合、ASSIST指定が優先され、TID_SORTの指定に関わらず、TIDソートを利用しません。

パラメタの意味
YES:

TIDソートを利用します。

NO:

TIDソートを利用しません。

TID_UNION
指定形式

TID_UNION = ({YES | NO})

実行パラメタの意味

TIDユニオンマージのアクセスモデルを有効にするか否かを指定します。省略値はYESです。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、TID_UNIONの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。

パラメタの意味
YES:

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

NO:

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

USQL_LOCK
指定形式

USQL_LOCK = ({SH | EX})

実行パラメタの意味

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

パラメタの意味
SH:

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

EX:

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

使用例

SQL>CHANGE ENV SORT_MEM_SIZE=(1024),R_LOCK=(YES)