「SQL アウトライン」ビューを使用して、SQL ステートメントのパフォーマンスを調べ、チューニングの必要なステートメントを素早く見つけることができます。
Java プロジェクトの SQL ステートメントのパフォーマンスを測定するには、以下のようにします。
- pureQuery 実行構成を以下のように作成して実行します。
- 「パッケージ・エクスプローラー」で、プロジェクト・フォルダーを右クリックし、を選択します。
- 開いた「実行構成 (Run Configurations)」ウィンドウで、左側のツリーにある「pureQuery」をダブルクリックし、新規実行構成を作成します。
- 「名前」フィールドに、構成の名前を入力します。それから、「メイン・クラス」の下にある「検索」ボタンをクリックします。
注: pureQuery 実行構成を使用する必要があるのは、アプリケーションの SQL ステートメントのパフォーマンス・データを収集するときだけです。ほとんどの場合、SampleUtil アプリケーションを実行したときと同じように、Java アプリケーション実行構成を使用できます。
「メイン型を選択 (Select Main Type)」ウィンドウが開きます。
- テストするアプリケーションの main() メソッドを含むクラスを選択してください。 このチュートリアルでは、テスト・アプリケーション InventoryLevelsDataTest を実行します。これは、INVENTORY_LEVELS 表のすべての行を返す InventoryLevelsData インターフェースの SELECT ステートメントを実行する、単純で軽量のアプリケーションです。
このアプリケーションは、表の最初の行の値を使用して Bean を初期化します。アプリケーションは、Bean を入力データとするメソッドにその Bean を渡します。
- 「適用」ボタンをクリックします。
- 「引数 (Arguments)」ページの「プログラムの引数 (Program arguments)」フィールドに、GSDB データベースに接続するのに必要な JDBC 接続 URL、ユーザー ID、およびパスワードを入力します。 以下の画像は、GSDB データベースへのサンプル接続を示しています。
図 1. GSDB データベースへの接続の URL、ユーザー ID、およびパスワードの例
- 「適用」をクリックしてから「実行」をクリックします。
デフォルトでは、Optim™ Development
Studio は「コンソール」ビューを開き SQL ステートメントの結果を表示します。
- 実行した SQL ステートメントのパフォーマンス・データを表示します。
「SQL アウトライン」ビューに移動します。「パフォーマンス・データまたは EXPLAIN データの表示」ボタン
の下矢印をクリックし、「パフォーマンス・データ」を選択します。
SQL ステートメントの右に、パフォーマンス・データをミリ秒の値で示す列が表示されます。
プロジェクト・フォルダーを右クリックしてを選択しないと、パフォーマンス・データが表示されない場合があります。
- 「SQL アウトライン」ビューのツールバーで、「パフォーマンス・データ・タイプ」リストから「ワークベンチ SQL パフォーマンス」を選択します。
- パフォーマンスが低いステートメントを検出します。 ステートメントが少ない場合は、パフォーマンスの低い SQL ステートメントを検出することは容易です。しかし、ステートメントの数が多い場合でも、表ビューを使用すればパフォーマンスが低いステートメントを容易に検出できます。
「ツリー・ビューまたは表ビューの表示」ボタン (
) をクリックします。
ビューの「データベース」階層ページが表に切り替わります。
- 「合計クライアント時間」列の見出しを 2 回クリックし、このデータのビューの表の先頭に最も遅いステートメントが表示されるようにします。
ヒント: ステートメントを編集したり、チューニングしたり、または他のユーザーに送付して確認を依頼する場合は、いずれかのステートメントを右クリックします。これまでの演習で学習したすべてのオプションが使用できます。
- パフォーマンス・データを保存します。 1 つ以上のステートメントを編集またはチューニングする前に、パフォーマンス・データを保存する必要があります。
そうすれば、これらのステートメントの古いバージョンのパフォーマンスと新しいバージョンのパフォーマンスを比較できます。パフォーマンス・データのセットを保存するには、以下のようにします。
- 「現行パフォーマンス・データの保存」ボタンをクリックします。
- 「パフォーマンス・データの保存」ウィンドウで、データ・セットの名前を付けます。 pureQuery はデータ・セットを指定された名前にタイム・スタンプを追加して保存します。
次の演習では、このパフォーマンス・データのセットを他のものと比較します。