シナリオ: SQL スクリプトのパフォーマンス・メトリックの取得

このシナリオでは、アプリケーション開発者である Joe がワークベンチを使用して自分のパフォーマンス管理リポジトリー・データベースに接続し、彼が開発している SQL スクリプトのパフォーマンス・メトリックを収集します。

Joe は Sample Company のアプリケーション開発者です。 最近、彼のカスタマー・オーダー・アプリケーションの反応が遅いという苦情がありました。 彼は自作の SQL ステートメントをチューニングしてそれらのステートメントが最適なパフォーマンスを発揮するようにするため、データベースに対して SQL ステートメントを実行する際にパフォーマンス・データを収集することにしました。

最初に Joe は、彼のチームが最小バージョンの InfoSphere® Optim™ Performance Manager Extended Edition を実行していることを確認します。 そして、カスタマー・オーダー・データが入っているデータベースが、InfoSphere Optim Performance Manager で Extended Insight モニター用に構成されていることを確認します。 彼は InfoSphere Optim Performance Manager リポジトリー・データベースの接続情報を収集します。 それには、Extended Insight のために使用されるホスト名とポート番号が含まれます。 カスタマー・オーダー・データベースの接続情報は既に分かっています。

Joe はワークベンチ内の「設定」ウィンドウの「パフォーマンス・メトリック」ページを使用して、 パフォーマンス・データを取得してワークベンチ内に表示するために、ワークベンチが InfoSphere Optim Performance Manager Extended Edition 用のリポジトリー・データベースに接続することを許可するよう、指定します。

次に、Joe は既存の SQL スクリプトをワークベンチ内で開きます。 彼は「接続」タブを使用して、カスタマー・オーダー・データベースに対してこのスクリプトを実行するよう、指定します。 それから彼は、「パフォーマンス・メトリック」タブを開き、Optim Performance Manager プロファイルを指定します。 このプロファイルを使用して、ワークベンチがリポジトリー・データベース PERFDB に接続するために使用できる情報を指定します。 このリポジトリー・データベースには、モニター対象となるカスタマー・オーダー・データベースのために InfoSphere Optim Performance Manager が収集するパフォーマンス・メトリック・データが格納されます。

Joe のワークスペース内に指定された Optim Performance Manager プロファイルを Joe が今のところ持っていない場合、1 つのものを指定するか、または「プロファイル」フィールドの隣の「管理」ボタンをクリックして既存のプロファイルを管理することができます。 Joe はプロファイルを選択してその他のオプションを指定した後に、「パフォーマンス・メトリックの実行と収集」ボタンをクリックします。 スクリプト内の SQL ステートメントがカスタマー・オーダー・データベースに対して実行され、InfoSphere Optim Performance Manager リポジトリー・データベースはパフォーマンス・データについてデータベースをモニターします。 ワークベンチは「パフォーマンス・メトリック」ビューを開き、 リポジトリー・データベースに格納されるパフォーマンス・メトリック・データを InfoSphere Optim Performance Manager が収集して処理するのを待ちます。 このアクションは完了するまでに 2 分から 6 分かかるので、Joe はデータが返されるのを待つ間、引き続き別のアプリケーションでの作業を続行します。 アクションの進行状況は「進行」ビューで確認できます。

結果は「パフォーマンス・メトリック」ビューに返されます。 Joe は、スクリプト内の 1 つの SQL ステートメントが特に高い CPU 時間を占めていることに気付きます。 彼は「パフォーマンス・メトリック」ビュー内の SQL ステートメントを右クリックしてから「開く」を選択して、新しい「SQL エディター」ビューでステートメントを検査します。 彼は、特に大きな表が照会によって呼び出されていて、それがパフォーマンスを遅くしていること (DB2® は表のすべての行を返すため) を判別しました。 その表を使用している業務チームとの会合の後、その表のうち最初の 100 行を返すだけも許容できることが判明しました。 それで彼は、以下の行をステートメントに追加します。
FETCH FIRST 100 ROWS ONLY

Joe は変更を保存してから、カスタマー・オーダー・データベースに対してスクリプトを再び実行します。 「パフォーマンス・メトリック」ビューには前のアクションの結果が保存されているので、各種の更新のパフォーマンスを容易に比較することができます。 「パフォーマンス・メトリック」ビューが更新されると、更新された SQL ステートメントの CPU 時間がかなり減少し、アプリケーションのパフォーマンスが改善されたことが分かりました。

今後の参照のために改善点を保存するため、Joe は元の SQL ステートメントを含む「パフォーマンス・メトリック」ビュー内の行を選択してから CTRL を押して、更新された SQL ステートメントを選択します。 「パフォーマンス・メトリック」ビュー内で右クリックし、「エクスポート」を選択して、パフォーマンスが改善された証拠として 2 つの行を XML ファイルに保存します。 これで彼は、ワークベンチの外部でこれらの結果を見たり、パフォーマンス改善を他のチーム・メンバーと共有したりすることができます。


フィードバック