SPA利用のツボ! 「テストモード」「評価メトリック」の選び方:【12c対応】とにかく苦労しない「RAT」簡単攻略テクニック(5)(1/3 ページ)
とにかく大変なデータベースバージョンアップ時の「SQLテスト」。本連載では、この課題を解決するOracle Databaseのオプション機能である「Oracle Real Application Testing(RAT)」と、その一機能である「SQL Performance Analyzer(SPA)」の攻略方法を紹介していきます。今回はどのテストモードを選べばよいのか、どの性能を評価すればよいのか、選定ポイントを詳しく紹介します。
ハードウェアリプレースとOracle Databaseのバージョンアップ時に、既存のSQL文が問題を起こさないかどうか、前回は、SQL Performance Analyzer(SPA)を利用して検証する6つのステップのうち、後半の3つ、「SPA実行ステップ」を紹介しました。SPAのタスクを作成した後、図1にあるような3つの工程を経てレポートを作成しています。
今回は、前回説明していない重要なポイントを説明します。SQLの性能を正しく評価するにはこの3つの工程で、どの「テストモード」を選ぶか、「評価メトリック」として何を選択するのかが重要なのです。以下では各設定の違いや注意点を詳しく解説します。
SQL試行の作成で選択する3つのテストモード
図1にある1回目と2回目のSQL試行の作成では、Enterprise Managerの画面から「作成方法」を選びました。ここで選択できるテストモードは大きく3種類に分かれ、「SQLを実行」「計画を実行」「SQLチューニング・セットから作成」という名前が付いています(図2)。
3種類の違いが分かりやすいよう、図3に、これらのテストモードの英語名とイメージ図、データセット準備が必要かどうかをまとめました。
Enterprise Managerの画面にある日本語訳は解釈の違いを招く可能性があります。そこで以下ではTest Executeといった英語名を使って説明します。
- 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.
関連記事
- オラクルが考えるDBインフラのクラウド化「DBaaS」とは? 実現方法と支援環境を聞く
「DBaaS(ディービーアース、Database as a Service)」実現に向けて、オラクルはどのような移行プロセスを考えているのだろうか。段階的移行の三つのステップとそれを支援する環境をどこまで用意しているのかを、米オラクルの担当者に取材した。 - アシスト、Oracle Database 12cとクラウドへの早期移行を支援する「12c R2×Oracle Cloudスタートアップキャンペーン」を実施
アシストがOracle Database 12cとOracle Cloudへの移行促進キャンペーンを実施。期間限定で環境構築や基礎機能のレクチャーなどをセットにした移行支援ソリューションを特価で提供する。実施は2017年4月30日まで。 - オラクル、「Oracle Database 12c R2」のOracle Cloud at Customer/オンプレミス向け提供を開始
データベース管理システムの最新版「Oracle Database 12c Release 2」で全ての提供形態が整った。先行提供していたパブリッククラウド向けに続き、新たにOracle Cloud at Customer向けとオンプレミス向け提供を開始した。 - オラクルが確約した「クラウド6箇条」と「Database 12c R2」の気になるトコロ
米オラクルのラリー・エリソンCTOが、同社の年次イベントで今後のクラウド事業の行方を確約する「Oracle Cloud、6つの設計目標」を掲げました。同時に発表された基幹製品「Oracle Database 12c」の次期バージョンのポイントと共に、そこにどんな狙いがあるかを振り返ります。