ページの先頭行へ戻る
PRIMEFLEX for HA Database 業務開発ガイド(Native SQL編)
FUJITSU Integrated System

5.3.1 アクセスプランを確認する

アクセスプランの確認ポイントとしては、以下があります。

参照

アクセスプランの出力形式や出力内容は、“Symfoware Server SQLTOOLユーザーズガイド”を参照してください。

アクセス方式を確認する

アクセスプランのSCANエレメントのscan typeでアクセス方式を確認します。

[アクセスプランの出力例]

Access plan:
    Convert SQL statement:
    SELECT TBL1.C2 FROM USR1.TBL1 WHERE TBL1.C1=?
             :
       [1] SCAN ELEMENT
           table name USR1.TBL1
           scan type INDEX KEY SCAN(1)

scan typeの表示内容

アクセス方式

TABLE KEY SCAN

表をキー値で検索

TABLE ALL SCAN

表の全文検索

TABLE PARALLEL SCAN

表の全件を並列に検索

INDEX KEY SCAN(n)

インデックス検索

INDEX ALL SCAN

インデックスの全件を順検索

INDEX TABLE SCAN(n)

インデックスをキー範囲検索しながら表のレコードも取り出す

処理に時間がかかるアクセス方式が選択されていないか、インデックスが適切に使用されているかを確認します。

適切なアクセス方式でない場合には、アクセス方式をチューニングします。

アクセス方式のチューニング方法については、“5.4.1 アクセス方式のチューニング”を参照してください。

ジョイン方法を確認する

アクセスプランのセクション情報で、ジョイン方法を確認します。

[アクセスプランの出力例]

===============================================================
Main query
=sno===sectname=====input1========input2========output/update======
   1 : M-JOIN       [TBL1_IX1_DSO]      [ ]                [ ]
                    [TBL2_IX1_DSO ]     [ ]                [APPL ]
--------------------------------------------------------------------

セクション名の表示内容

意味

特長

M-JOIN

マージジョインを行う

複数の表をジョインキー(ジョインで使用する列)のデータの昇順に読み込み、ジョインキーの等しい行を結合します。

F-JOIN

フェッチジョインを行う

一般的には、大量データのジョインには向きません。反面、少量データのジョインには向いています。

N-JOIN

ネスティドループジョインを行う

ジョインする表のすべてのレコードを組み合わせて結合を行うため、ジョイン結果を求めるのに時間がかかります。

ジョイン方法の特長を考慮し、適切なジョイン方法が選択されているかを確認します。ジョイン方法の選択が適切でない場合には、ジョイン方法をチューニングします。

参照

ジョイン方法についての詳細は、“Symfoware Server アプリケーション開発ガイド(共通編)”を参照してください。

また、チューニング方法については、“5.4.2 ジョイン方法のチューニング”、“5.4.3 ジョイン順のチューニング”を参照してください。

アドバイスを確認する

アクセスプランの“Advice to an SQL statement”で、アドバイスを確認します。

[アクセスプランの出力例]

Access plan: 
    Convert SQL statement:
    SELECT COUNT(*) FROM USR1.TBL1
    Advice to an SQL statement:
    JYP2401I 表の全件検索を行います.

アドバイスは、以下の場合に出力されます。

アドバイスが出力されている場合には、出力された内容に応じて、チューニングを実施します。

チューニング方法については、“5.4.4 アドバイスに応じたチューニング”を参照してください。

ソート作業域、ワーク作業域を確認する

アクセスプランのセクション情報で、出力先の資源名を確認します。

[アクセスプランの出力例]

=================================================================
Main query
=sno===sectname=====input1========input2======output/update======
  1 :   SCAN       [TBL1IXDSO1 ]      [          ] [SORT0001 ]
-------------------------------------------------------------------

入力資源名(input1/input2)、出力資源名(output/update)として、以下が表示されている場合は、ソート作業域、ワーク作業域が使用されています。

次に、SQL性能情報の実行エレメント情報に出力される以下の内容を確認します。

実行エレメント名

詳細情報

出力内容

SORT SCAN

file size

ソート処理時の作業ファイル使用量

run merge

マージした回数

SORT INSERT SCAN

file size

ソート処理時の最大作業ファイル使用量

run merge

マージした回数

WORK SCAN

file size

ワーク処理時の作業ファイル使用量

WORK INSERT SCAN

file size

ワーク処理時の最大作業ファイル使用量

SQL性能情報は、以下の方法で取得することができます。

参照

SQL性能情報の取得方法および出力内容については、“Symfoware Server SQLTOOLユーザーズガイド”を参照してください。

SQL文のソート処理や一時作業処理で使用するメモリが、動作環境ファイルで指定したメモリサイズを超えた場合、作業ファイルが作成されます。SQL文は、その作業ファイルを使用して処理が実行されますが、SQL実行時、作業ファイルを大量に使用すると、性能が劣化する可能性があります。

また、ソート処理時に、2回以上のマージ処理が行われていることで、メモリが不足し、性能が悪くなっている可能性があります。

これらの場合には、ソートサイズ、ワークサイズのチューニングを実施します。

チューニング方法については、“5.4.5 ソートサイズ、ワークサイズのチューニング”を参照してください。