Question & Answer
Question
db2batch を使って最適化プロファイル利用時のパフォーマンスを確認するためには、どのようにすればよいですか。
Answer
db2batch は CLI アプリケーションのため、実行する SQL で最適化プロファイルを利用するためには、CLI/ODBC 構成キーワードの CURRENTOPTIMIZATIONPROFILE を設定する必要があります。
以下のように登録済みの最適化プロファイルを DB2 CLI/ODBC 初期設定ファイル (db2cli.ini) に追加してください。
[実行コマンド例]
最適化プロファイルが利用されていることを確認するためには、db2batch のオプションに "-o e yes" を付加して実行してください。EXPLAIN 表に EXPLAIN の結果が保存されるため、db2exfmt で利用されている最適化プロファイルの情報が確認できます。
[実行コマンド例:インスタンス・オーナーでデータベース SAMPLE を対象に実行していると仮定します]
以下のように登録済みの最適化プロファイルを DB2 CLI/ODBC 初期設定ファイル (db2cli.ini) に追加してください。
[実行コマンド例]
db2 update cli cfg for section SAMPLE using CURRENTOPTIMIZATIONPROFILE DB2INST1.PROFILE1
最適化プロファイルが利用されていることを確認するためには、db2batch のオプションに "-o e yes" を付加して実行してください。EXPLAIN 表に EXPLAIN の結果が保存されるため、db2exfmt で利用されている最適化プロファイルの情報が確認できます。
[実行コマンド例:インスタンス・オーナーでデータベース SAMPLE を対象に実行していると仮定します]
- (EXPLAIN 表を未作成の場合) EXPLAIN 表を作成します。
db2 -tf $HOME/sqllib/EXPLAIN.DDL
- db2batch で input.sql ファイルに記載された SQL のパフォーマンス情報を取得します。
db2batch -d sample -f input.sql -r output.out -o e yes
- 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 レコードが選択されました。
- 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 に設定してください。
[実行コマンド例]
関連情報
CURRENTOPTIMIZATIONPROFILE CLI/ODBC 構成キーワード
アプリケーション内での最適化プロファイルの設定
db2batch - ベンチマーク・ツール
db2exfmt - Explain 表フォーマット
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
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
Was this topic helpful?
Document Information
Modified date:
15 August 2023
UID
jpn1J1001932