10.11.8 SQLトレース情報を利用したSQL文のチューニング
ここでは,SQLトレース情報を利用したSQL文のチューニング手順について説明します。
(1) SQLトレース情報をSQL文単位で出力している場合
SQLトレース情報をSQL文単位で出力している場合に,SQL文をチューニングする手順について次に示します。
手順
-
チューニングに利用する情報を準備する
SQLトレース情報を参照できるように準備してください。
-
実行時間の長いSQL文を特定する
SQLトレース情報のSQL文の実行情報のexe_timeに出力されているSQL文の実行時間を確認して,実行時間の長いSQL文を特定してください。
-
SQL文の実行情報の出力値を記録する
手順2.で特定したSQL文の実行情報の次の値を記録してください。
-
con_id(コネクションID)
-
con_num(コネクション通番)
-
stmt_hdl(SQL文に割り当てられた文ハンドル)
-
sql_serial_num(SQL文通番)
-
-
SQL文の基本情報を確認する
次の条件を満たすSQL文の基本情報を探してください。
-
con_id,con_num,stmt_hdl,およびsql_serial_numの値が,手順3.で記録した値と同じである
複数のSQL文の基本情報の中から,該当するSQL文の基本情報を探す方法については,「10.11.4 SQLトレース情報の出力例と見方」を参照してください。
-
-
実行したSQL文とアクセスパス情報,および?パラメタの情報を確認する
手順4.で特定したSQL文の基本情報の直後に出力されている実行したSQL文とアクセスパス情報,および?パラメタの情報を確認してください。
-
統計情報を確認する
手順2.で特定したSQL文の実行情報の直後に出力されている次の統計情報を参照して,SQL文のチューニングを実施してください。
-
SQL文の統計情報
-
アクセスパスの統計情報
-
(2) SQLトレース情報をコール単位で出力している場合
SQLトレース情報をコール単位で出力している場合に,SQL文をチューニングする手順について次に示します。
手順
-
チューニングに利用する情報を準備する
SQLトレース情報を参照できるように準備してください。
-
実行時間の長いSQL文を特定する
SQLトレース情報のSQL文の実行情報のexe_timeに出力されているSQL文の実行時間を確認して,実行時間の長いSQL文を特定してください。
-
SQL文の実行情報の出力値を記録する
手順2.で特定したSQL文の実行情報の次の値を記録してください。
-
con_id(コネクションID)
-
con_num(コネクション通番)
-
stmt_hdl(SQL文に割り当てられた文ハンドル)
-
sql_serial_num(SQL文通番)
-
-
SQL文の実行情報を確認する
次の条件を満たすSQL文の実行情報を探してください。
-
con_id,con_num,stmt_hdl,およびsql_serial_numの値が,手順3.で記録した値と同じである
-
検索系SQLを実行した場合は,コール種別がPREPまたはOPENである
-
更新系SQLを実行した場合は,コール種別がPREP,EXECまたはEXDIである
-
-
実行したSQL文とアクセスパス情報,および?パラメタの情報を確認する
手順4.で特定したSQL文の実行情報の直後に出力されている次の情報を確認してください。
-
コール種別がPREPまたはEXDIの場合は,実行したSQL文とアクセスパス情報を確認する
-
コール種別がOPENまたはEXECの場合は,?パラメタの情報を確認する
-
-
SQL文の実行情報を確認する
次の条件をすべて満たすSQL文の実行情報を探してください。
-
con_id,con_num,stmt_hdl,およびsql_serial_numの値が,手順3.で記録した値と同じである
-
コール種別がCLOS,EXEC,またはEXDIである
-
-
統計情報を確認する
手順6.で特定したSQL文の実行情報の直後に出力されている次の統計情報を参照して,SQL文のチューニングを実施してください。
-
SQL文の統計情報
-
アクセスパスの統計情報
-