検索
連載

SPA利用のツボ! 「テストモード」「評価メトリック」の選び方【12c対応】とにかく苦労しない「RAT」簡単攻略テクニック(5)(1/3 ページ)

とにかく大変なデータベースバージョンアップ時の「SQLテスト」。本連載では、この課題を解決するOracle Databaseのオプション機能である「Oracle Real Application Testing(RAT)」と、その一機能である「SQL Performance Analyzer(SPA)」の攻略方法を紹介していきます。今回はどのテストモードを選べばよいのか、どの性能を評価すればよいのか、選定ポイントを詳しく紹介します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 ハードウェアリプレースとOracle Databaseのバージョンアップ時に、既存のSQL文が問題を起こさないかどうか、前回は、SQL Performance Analyzer(SPA)を利用して検証する6つのステップのうち、後半の3つ、「SPA実行ステップ」を紹介しました。SPAのタスクを作成した後、図1にあるような3つの工程を経てレポートを作成しています。

 今回は、前回説明していない重要なポイントを説明します。SQLの性能を正しく評価するにはこの3つの工程で、どの「テストモード」を選ぶか、「評価メトリック」として何を選択するのかが重要なのです。以下では各設定の違いや注意点を詳しく解説します。

図1
図1 SPA実行の3ステップ

SQL試行の作成で選択する3つのテストモード

 図1にある1回目と2回目のSQL試行の作成では、Enterprise Managerの画面から「作成方法」を選びました。ここで選択できるテストモードは大きく3種類に分かれ、「SQLを実行」「計画を実行」「SQLチューニング・セットから作成」という名前が付いています(図2)。

図2
図2 SQL試行の作成で選択できるテストモード(ローカルとリモートの違いは後半で解説)

 3種類の違いが分かりやすいよう、図3に、これらのテストモードの英語名とイメージ図、データセット準備が必要かどうかをまとめました。

 Enterprise Managerの画面にある日本語訳は解釈の違いを招く可能性があります。そこで以下ではTest Executeといった英語名を使って説明します。

図3
図3 各テストモードの処理内容と条件
  • Test Execute(SQLを実行)

 Test Executeでは、SQLチューニング・セット(以下、STS)からSQLを取り出し、オプティマイザでパース(解析)します。その後、データセットを使って実行し、実行統計を記録します。

 全ての性能情報を取得できることが特徴で、エラーの有無と実行計画、オプティマイザコストに加え、経過時間やCPU時間、バッファー読み取り量なども分かります。

 バインド変数を使っているSQLの場合は、STS内に記録されたバインド値を使用して実行します。

 実行時にはSQLを1本1本シリアルに処理します。1本のSQLを2回以上、最大10回実行後、2回目以降の結果を平均して、性能値として取り扱います。

  • Explain Plan(計画を実行)

 Explain Planでは、STSからSQL文を取り出し、オプティマイザでパースまで進めます。データセットは使いません。取得できる情報は、エラーの有無と実行計画、オプティマイザコストです。

 バインド変数の取り扱いはTest Executeと同じで、STS内に記録されているバインド値を使用します。

  • Convert SQLSET(SQLチューニング・セットから作成)

 Convert SQLSETでは、STS取得環境での実行計画や実行統計を抽出し、テスト結果として用います。オプティマイザは使いませんし、データセットも不要です。

 選択できるのは1回目のSQL試行のみ。2回目のSQL試行では、Test ExecuteかExplain Planを実行した結果と比較します。

 3種類のテストモードを比較すると、Test Executeではデータセットが必要なことに対し、Explain PlanとConvert SQLSETではデータセットがなくても、スキーマ構成とオプティマイザ統計情報がリストアされていれば実行可能です。そのため、本番環境からデータを持ち出せない場合には、この2つのモードが有効です ※。

※ ただし、スキーマ構成とオプティマイザ統計を使ってテストする場合は注意点がある。詳しくは第3回の内容を参照。



Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る