第4章 チューニング
A.1 パラメタ一覧
付録 A 性能チューニングのためのパラメタ一覧
本章では、性能チューニングのためのパラメタを説明します。
分類 実行パラメタ 概要
作業領域
SORT_HASHAREA_SIZ E
ソート処理がレコードをハッシ ングして格納するための領域 サイズ
SORT_MEM_SIZE 作業用ソート領域として使うメ
モリサイズ
WORK_MEM_SIZE 作業用テーブルとして使うメモ
リサイズ
注意
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:
探索条件に指定したインデックスキーまたは、クラスタキーで範囲検索を行う。
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:
更新標的レコードを検索するアクセスモデルで非共用モードで表を占有します。
並列クエリに関する実行パラメタ MAX_PARALLEL
【指定形式】
MAX_PARALLEL = (多重度)
【実行パラメタの意味】
SQL文でデータベースを並列に検索する場合の多重度を2~100の範囲で指定します。省略した場合は、システ ム用の動作環境ファイルにおけるMAX_PARALLELの指定に従って並列検索(並列クエリ)を行います。SQL文 でデータベースを並列に検索できるのは、単一行SELECT文またはカーソル宣言で並列指定を指定した場合で す。表のDSIの数が、指定した多重度よりも少ない場合は、DSIの数を多重度として並列検索を行います。
PARALLEL_SCAN
【指定形式】
PARALLEL_SCAN = ({YES | NO})
【実行パラメタの意味】
アプリケーション単位またはコネクション単位に、データベースを並列に検索する(並列クエリ)か否かを指定しま す。省略した場合は、NOが指定されたとみなします。
【パラメタの意味】
YES:
データベースを並列に検索します。この場合、そのアプリケーションの単一行SELECT文およびOPEN文を並 列検索で実行できます。ただし、以下のいずれかの条件を満たす場合、並列検索は実行されず従来のアクセ ス手順でデータベースをアクセスします。
- 表がDSI分割されていない、または1つのDSIに対するアクセスの場合 - クラスタキーを利用したデータベースアクセスが可能な場合
- 探索条件にROW_IDを指定した検索の場合
- インデックスを利用したデータベースアクセスが可能な場合 NO:
データベースを並列に検索しません。
排他に関する実行パラメタ R_LOCK
【指定形式】
R_LOCK = ({YES | NO})
【実行パラメタの意味】
占有の単位を行とするかどうかを指定します。省略した場合は、システム用の動作環境ファイルにおけるR_LOCK の指定に従います。
【パラメタの意味】
YES:
占有の単位を行とします。このパラメタを指定した場合、クライアント用およびサーバ用の動作環境ファイルに
DSO_LOCKパラメタを指定することはできません。
NO:
占有の単位は、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になります。
作業領域に関する実行パラメタ SORT_HASHAREA_SIZE
【指定形式】
SORT_HASHAREA_SIZE = (メモリサイズ)
【実行パラメタの意味】
ソート処理がレコードをハッシングして格納するための領域のサイズです。2112~2097150の範囲で指定します。
単位はキロバイトです。省略した場合は、メモリ上のすべてのレコードをハッシングして格納します。