IBM Support

[Db2] db2batch で最適化プロファイル利用時のパフォーマンスを確認する方法 (IM-10-00J)

Question & Answer


Question

db2batch を使って最適化プロファイル利用時のパフォーマンスを確認するためには、どのようにすればよいですか。

Answer

db2batch は CLI アプリケーションのため、実行する SQL で最適化プロファイルを利用するためには、CLI/ODBC 構成キーワードの CURRENTOPTIMIZATIONPROFILE を設定する必要があります。
以下のように登録済みの最適化プロファイルを DB2 CLI/ODBC 初期設定ファイル (db2cli.ini) に追加してください。

[実行コマンド例]
db2 update cli cfg for section SAMPLE using CURRENTOPTIMIZATIONPROFILE DB2INST1.PROFILE1

最適化プロファイルが利用されていることを確認するためには、db2batch のオプションに "-o e yes" を付加して実行してください。EXPLAIN 表に EXPLAIN の結果が保存されるため、db2exfmt で利用されている最適化プロファイルの情報が確認できます。

[実行コマンド例:インスタンス・オーナーでデータベース SAMPLE を対象に実行していると仮定します]
  1. (EXPLAIN 表を未作成の場合) EXPLAIN 表を作成します。
    db2 -tf $HOME/sqllib/EXPLAIN.DDL
  2. db2batch で input.sql ファイルに記載された SQL のパフォーマンス情報を取得します。
    db2batch -d sample -f input.sql -r output.out -o e yes
  3. EXPLAIN 表を照会し、該当の SQL が EXPLAIN されていることを確認します。
    db2 "select explain_time, varchar(source_schema,10) source_schema, varchar(source_name,10) source_name, varchar(statement_text,100) statement_text
     from db2inst1.explain_statement where statement_text like 'SELECT * FROM DB2INST1.T1 WHERE C1=1'"
    
    EXPLAIN_TIME               SOURCE_SCHEMA SOURCE_NAME STATEMENT_TEXT
    -------------------------- ------------- ----------- -------------------------------------
    2020-06-25-11.19.12.535144 NULLID        SYSSN400    SELECT * FROM DB2INST1.T1 WHERE C1=1
    
      1 レコードが選択されました。
  4. db2exfmt で EXPLAIN をフォーマットし、最適化プロファイルが適用されていることを確認します。
    db2exfmt -d sample -g TIC -w "2010-06-25-11.19.12.535144" -s NULLID -n SYSSN400 -# 0 -o db2exfmt.out
    
    Profile Information:
    --------------------
    OPT_PROF: (Optimization Profile Name)
            DB2INST1.PROFILE1
運用上の考慮点
db2cli.ini の内容を変更した場合、変更以降に接続が行われたアプリケーションで設定が有効となりますので、変更後に実行された db2batch から設定が有効となります。
インスタンスの再起動などは必要ありません。
パフォーマンスの確認を終了した後に設定を元に戻す場合、以下のように CURRENTOPTIMIZATIONPROFILE を NULL に設定してください。
[実行コマンド例]
db2 update cli cfg for section SAMPLE using CURRENTOPTIMIZATIONPROFILE NULL

関連情報
CURRENTOPTIMIZATIONPROFILE CLI/ODBC 構成キーワード
アプリケーション内での最適化プロファイルの設定
db2batch - ベンチマーク・ツール
db2exfmt - Explain 表フォーマット

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PkyAAE","label":"Compiler-\u003EOptimizer"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions","Type":"MASTER"}]

Historical Number

275A568C7BAD504E49257766002E6C8C

Document Information

Modified date:
15 August 2023

UID

jpn1J1001932