アプリケーションの動作環境をチューニングすることで、アプリケーションの処理性能を向上させることができます。
以下のいずれかの方法で、性能チューニングのためのパラメタの値を変更することで、動作環境をチューニングできます。
動作環境ファイルのパラメタの値を変更
rdbexecsqlコマンドのCHANGE ENV文でパラメタの値を変更
参照
rdbexecsqlコマンドでパラメタの値を変更する方法については、“SQLTOOLユーザーズガイド”を参照してください。
性能チューニングのためのパラメタを、以下に示します。
分類 | 実行パラメタ | 概要 |
---|---|---|
最適化パラメタ | インデックスを使用しないアクセスプランを選択するか否か | |
非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択するか否か | ||
ジョインする方法 | ||
結合表と他の表のジョイン順 | ||
四則演算の検索範囲について、インデックス範囲検索、または、クラスタキーの検索を行うか否か | ||
探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行うか否か | ||
述語ごとの検索範囲の選択率の値 | ||
インデックス検索と表データ取得のアクセスモデルTIDソートを利用するか否か | ||
TIDユニオンマージのアクセスモデルを有効にするか否か | ||
UPDATE文:探索またはDELETE文:探索の更新標的レコードを位置づける部分の占有モード | ||
並列クエリ | データベースを並列に検索する場合の多重度 | |
アプリケーション単位またはコネクション単位にデータベースを並列に検索するか否か | ||
排他 | 排他の単位を行とする | |
作業領域 | ソート処理がレコードをハッシングして格納するための領域サイズ | |
作業用ソート領域として使うメモリサイズ | ||
作業用テーブルとして使うメモリサイズ |
注意
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 = ({YES | NO})
データベースを検索するときに、インデックスを使用しないアクセスプランを選択するか否かを指定します。データウェアハウジングにおいて大量のデータを検索および集計する場合には、インデックスだけではデータが絞りきれず、インデックスを使う分だけ無駄なオーバヘッドが発生することがあります。このような場合は、当パラメタにYESを指定することにより、表の全件検索または並列スキャンのアクセスモデルを採用します。省略値はNOです。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、IGNORE_INDEXの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
インデックスを使用しないアクセスプランを選択します。
インデックスが使用できるときは、インデックスを使用したアクセスプランを選択します。
INACTIVE_INDEX_SCAN = ({YES | NO})
データベースを検索するときに、非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択するか否かを指定します。インデックスを非活性状態とし、一括更新処理でインデックスを更新しない高速なバッチ処理を行うアプリケーションの場合、本パラメタにNOを指定してください。YESが指定されている場合、バッチ処理がエラーとなる場合があります。省略値はYESです。
非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択します。
非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを選択しません。
JOIN_RULE = ({AUTO | MERGE | FETCH})
ジョインする方法を指定します。省略値はAUTOです。
ただし、SQL文にASSIST指定のJOIN_RULEを指定した場合、ASSIST指定が優先され、JOIN_RULEの指定に関わらず、ASSIST指定に指定されたジョイン方法に従います。
Symfoware/RDBが自動的に選択します。
マージジョインのアクセスモデルを優先します。
フェッチジョインのアクセスモデルを優先します。
JOIN_ORDER = ({AUTO | INSIDE | OUTSIDE})
結合表と他の表をジョインする場合のジョイン順を指定します。省略値はINSIDEです。
ただし、SQL文にASSIST指定のLEADING_TABLEを指定した場合、ASSIST指定が優先され、JOIN_ORDERの指定に関わらず、ASSIST指定に指定されたジョイン順に従います。
Symfoware/RDBが自動的に選択します。
結合表から先にジョインします。
結合表の中に指定した表と結合表の外に指定した表から先にジョインします。
SCAN_KEY_ARITHMETIC_RANGE = ({YES | NO})
四則演算の検索範囲について、インデックス範囲検索やクラスタキーの検索を行います。省略値はYESです。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、SCAN_KEY_ARITHMETIC_RANGEの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
四則演算の検索埴について、インデックス範囲検索、または、クラスタキーの検索を行う。
四則演算の検索埴について、インデックス範囲検索、または、クラスタキーの検索を行わない。
SCAN_KEY_CAST = ({YES | NO})
インデックス構成列やクラスタキーが、WHERE句またはON句のCASTに指定されてもインデックスの範囲検索やクラスタキー検索を行います。省略値はYESです。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、SCAN_KEY_CASTの指定に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
探索条件のCASTオペランドに指定した列でインデックスの範囲検索、または、クラスタキー検索を行う。
探索条件に指定したインデックスキーまたは、クラスタキーで範囲検索を行う。
SS_RATE = ([選択率1][,[選択率2][,[選択率3][,[選択率4][,[選択率5]]]]])
BETWEEN述語、比較述語、LIKE述語およびCONTAINS関数でインデックスを検索するとき、インデックスの検索範囲の割合を指定します。小数点付きの小数(0≦n≦1)の範囲を指定します。値は、0以上1以下の小数を指定してください。小数第6位まで指定できます。
ただし、SQL文にASSIST指定のUSE_INDEXを指定した場合、ASSIST指定が優先され、SS_RATEの割合に関わらず、ASSIST指定に指定されたインデックスを使用した検索を行います。
BETWEEN述語を指定した場合のインデックスの検索範囲。省略値は、0.2
比較述語“>”、“>=”、と“<”、“<=”でインデックスの検索開始位置および検索終了位置の両方が指定されている場合のインデックスの検索範囲。省略値は、0.25
比較述語“>”、“>=”、“<”、“<=”でインデックスの検索開始位置または検索終了のみが指定されている場合のインデックスの検索範囲。省略値は、0.5
LIKE述語を指定した場合のインデックスの検索範囲。省略値は、0.4
CONTAINS関数を指定した場合のインデックスの検索範囲。省略値は、0.0001
TID_SORT = ({YES | NO})
インデックス検索と表データ取得のアクセスモデルにおいて、TIDソートを利用するか否かを指定します。省略値はYESです。
ただし、SQL文にASSIST指定のFIRST_ROWSを指定した場合、ASSIST指定が優先され、TID_SORTの指定に関わらず、TIDソートを利用しません。
TIDソートを利用します。
TIDソートを利用しません。
並列クエリに関する実行パラメタ
排他に関する実行パラメタ
R_LOCK = ({YES | NO})
占有の単位を行とします。このパラメタを指定した場合、クライアント用およびサーバ用の動作環境ファイルにDSO_LOCKパラメタを指定することはできません。
占有の単位は、DSO_LOCKの指定に従います。このパラメタを指定し、かつDSO_LOCKが指定されていない場合は、Symfoware/RDBによって自動的に占有の単位が選択されます。
参照
詳細については、“アプリケーション開発ガイド(共通編)”の“排他制御”を参照してください。
注意
動作環境ファイルのR_LOCKがNOの場合、動作環境ファイルのDEFAULT_ISOLATIONにREPEATABLE_READを指定、またはSET TRANSACTION文にREPEATABLE READを指定しても、独立性水準はSERIALIZABLEになります。
動作環境ファイルのR_LOCKがYESの場合、動作環境ファイルのDEFAULT_ISOLATIONまたはSET TRANSACTION文にSERIALIZABLEを指定しても、独立性水準はREPEATABLE READになります。
作業領域に関する実行パラメタ