SPA実行編――短い工数で正確にSQLをテストする【12c対応】とにかく苦労しない「RAT」簡単攻略テクニック(4)(1/3 ページ)

とにかく大変なデータベースバージョンアップ時の「SQLテスト」。本連載では、この課題を解決するOracle Databaseのオプション機能である「Oracle Real Application Testing(RAT)」と、その一機能である「SQL Performance Analyzer(SPA)」の攻略方法を紹介していきます。今回はSPAを使った新環境側でのテストの手順を解説、加えてチューニングと再テストの方法を扱います。

» 2017年11月02日 05時00分 公開
[長内麻記@IT]

連載バックナンバー

 ハードウェアリプレースのタイミングでOracle Databaseのバージョンアップを予定しているとしましょう。既存のSQL文が移行先で問題を起こさないかどうか、SQL Performance Analyzer(SPA)を利用すれば人手や時間をかけず、事前に検証できます。

 SPAのステップは6つに分かれており、前回は、準備段階の3つのステップを説明しました(図1)。本番環境で発行されるSOEスキーマとAPPSスキーマのSQLをSQLチューニング・セット(以下、STS)に格納し、SPAを実行する新環境へインポートするところまでを押さえています。

 今回は、図1の4〜6に当たる部分、SPAの実行手順について解説します。以下ではSPA実行に必要な権限(DBMS_SQLPAパッケージのEXECUTE権限)を持つSPAUSERというユーザーで実行します。

図1 図1 今回解説する「SQL Performance Analyzerの実行(実行編)」の流れ

STEP4:1回目のSQL試行

 STEP 4は「1回目のSQL試行」です。STEP 1で作成したSTSから本番環境の実行計画や性能情報の記録を抽出する工程です。Enterprise Managerを使った実行手順の解説動画をご覧ください(動画1)。

動画が取得できませんでした
動画1 1回目のSQL試行の実行手順

 動画ではEnterprise Managerの「ガイド付きワークフロー」機能を使ってSPAを実行しています。まずはSPAのタスクを作成し、STSをひも付けします。その後、「SQL試行の作成」画面で作成方法を指定しました。「SQLチューニング・セットから作成」です(図2)。その後、1回目のSQL試行を作成します。作成方法については次回詳しく説明する予定です。

 今回の「SQLチューニング・セットから作成」という設定を選択すると、STS内の実行計画や性能情報をテスト結果として抽出します。

図2 図2 Enterprise Managerの1回目のSQL試行画面

STEP 5:2回目のSQL試行

 引き続き、Enterprise Managerを使ってSPA実行ステップを進めます。「2回目のSQL試行」の実行です(動画2)。

動画が取得できませんでした
動画2 2回目のSQL試行の実行手順

 1回目のSQL試行と同じような操作で、Enterprise Managerから2回目のSQL試行を作成できます。ただし、今回は作成方法として「SQLをローカルで実行」を選択しました(図3)。この設定では、SPAを実行しているデータベースに対してSTS内のSQLを1本1本実行し、実行計画や性能情報を記録していきます。

図3 図3 Enterprise Managerの2回目のSQL試行画面

 実際には各SQLをシリアルに2回以上(最大10回)実行します。1回目の実行はバッファにデータを載せるための実行で、性能値を記録しません。2回目以降では性能値を記録し、平均値を結果として扱います。

 このステップはSQL本数が多くなるほど時間がかかります。しかし、自動実行のため作業者の工数が増えることはありません。実行時間を短縮しなければならない場合は、SQLを実行せずにパースのみを行い、実行計画の変化だけをチェックするという方法もあります。次回詳しく紹介します。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。