Troubleshooting
Problem
EXECUTE カテゴリーの監査を有効にしているデータベースで、IMPORT コマンドなどで大量の SQL を実行すると以前のフィックスパックより時間がかかります。 監査を無効にしたり、フィックスパックを戻すとパフォーマンスの問題は解消します。 これはなぜでしょう?
Cause
CVE-2014-0919 の修正で追加された処理により、EXECUTE と CONTEXT の監査は以前のフィックスパックより若干時間を要します。
Environment
DB2 V9.7 FP11 以降、V10.1 FP5 以降、V10.5 FP6 以降、V11.1 で EXECUTE もしくは CONTEXT カテゴリーの監査を有効にしているデータベース
Diagnosing The Problem
監査対象の SQL を実行している接続で db2trc を採取すると、この修正で追加された処理によって遅延が発生しているかどうかを確認できます。
たとえば、CONTEXT の監査が有効な場合、関数 3.57.59.0 で時間を要していることが確認できます。
以下の例では、SQL を 10万回実行するとき、合計で 2.56 秒の遅延があることを示します。
V10.5 FP6
nCalls TotalElapsed FunctionName
100042 4.967376908 sqlr_audit_context
100018 2.561930037 3.57.59.0
100042 2.177487322 sqlr_audi
100042 1.977058568 sqlexAuditData::logEvent
同じ処理を以前のフィックスパックで実行すると、関数 3.57.59.0 はありません。
V10.5 FP5
nCalls TotalElapsed FunctionName
100042 2.337424966 sqlr_audit_context
100042 2.217967876 sqlr_audit
100042 1.992251132 sqlexAuditData::logEvent
例
- データベースに接続してアプリケーション ID を確認します。
$ db2 connect to <database_name>
$ db2 values application_id
1
-----------------------
*LOCAL.db2inst1.171122093528
1 record(s) selected. - 現行のアプリケーション ID のトレースを開始します。
$ db2trc on -f trc.dmp -t -appid *LOCAL.db2inst1.171122093528 - 監査対象のSQL を実行します。(以下の例は大量の INSERT ステートメント発行します。)
$ db2 import from data.del of del insert into t1 - SQL 終了後にトレースを停止し、パフォーマンス・レポート形式でフォーマットします。
$ db2trc off
$ db2trc perfrep trc.dmp trc.perf -sort timeelapsed
たとえば、CONTEXT の監査が有効な場合、関数 3.57.59.0 で時間を要していることが確認できます。
以下の例では、SQL を 10万回実行するとき、合計で 2.56 秒の遅延があることを示します。
V10.5 FP6
nCalls TotalElapsed FunctionName
100042 4.967376908 sqlr_audit_context
100018 2.561930037 3.57.59.0
100042 2.177487322 sqlr_audi
100042 1.977058568 sqlexAuditData::logEvent
同じ処理を以前のフィックスパックで実行すると、関数 3.57.59.0 はありません。
V10.5 FP5
nCalls TotalElapsed FunctionName
100042 2.337424966 sqlr_audit_context
100042 2.217967876 sqlr_audit
100042 1.992251132 sqlexAuditData::logEvent
Resolving The Problem
EXECUTE と CONTEXT に追加された処理は期待されるものです。遅延が許容されない場合、バッチ処理中のみ監査を停止するなどの運用を検討してください。
関連情報
[Db2] パスポート・アドバンテージによく寄せられる質問
Security Bulletin: IBM® DB2® contains a sensitive information exposure vulnerability in the monitoring and audit feature (CVE-2014-0919)
[Db2] 現在の監査設定を確認する方法
[Db2] Db2 9.5 以降における監査の設定方法 (IM-10-0AF)
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
上の例のケースでは、IMPORT コマンドの代わりに LOAD コマンドを利用して遅延をバイパスできます。
IMPORT コマンドは大量の INSERT ステートメントに変換されますが、LOAD コマンドは SQL を利用せずにデータを挿入します。
関連情報
[Db2] パスポート・アドバンテージによく寄せられる質問
Security Bulletin: IBM® DB2® contains a sensitive information exposure vulnerability in the monitoring and audit feature (CVE-2014-0919)
[Db2] 現在の監査設定を確認する方法
[Db2] Db2 9.5 以降における監査の設定方法 (IM-10-0AF)
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
[{"Type":"MASTER","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":"a8m500000008PkqAAE","label":"Performance"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
26 August 2023
UID
swg22010887