Oracle DBアップグレード時のSQLテストの手法を知る:データベース運用管理をクラウド化する方法(3)(2/3 ページ)
データベースアップグレードでは、旧環境のSQLが新環境で期待通りに動作するか、また性能が劣化しないかをテストする作業に多くの工数が掛かる。これをアップグレードプロジェクトの最大の関門と考える読者も多いだろう。実は、この作業を大幅に早く、簡単に行えるツールがある。[プライベートクラウド/データベース統合][Oracle Database 12c][Oracle Multitenant]
SQL Performance Analyzerの活用テクニック
それでは以降、オラクルのコンサルタントらエキスパートも活用している、SQL Performance Analyzerの効果的な活用テクニックを紹介していく。
SQL Performance Analyzerによって性能が劣化したSQLを特定するには、まずアップグレード前後の環境でSQLを実行する。その結果から実行計画を比較し、必要に応じてSQLの性能を比べるという手順で作業を進めるのがベストだ。
初めに実行計画を比較する理由の1つは、実行計画に変更がなければ、性能が悪化することはまずないといえるためだ。
逆に実行計画が変わるものは、性能をチェックすべきである。このとき、チェック対象は「性能が向上した」「性能が変わらない」「性能が悪化した」の3つに分類でき、このうち性能が悪化したものをチューニングすればよい。それを見極めるために、実行計画が変わったSQLを本番環境と新バージョンのテスト環境のそれぞれで実行し、性能を比較することをお勧めする。
最初に実行計画を比較するもう1つの理由は、この作業がすぐに完了するためだ。SQLの内容によっては数時間待っても結果が返らない場合がある。SQLの数が数百、数千になれば、実行するだけで多くの時間を費やすことになるだろう。最初に実行計画を比較し、変化したものだけに対して性能比較を行えば、そうした時間を節約できるのだ。
Oracle Databaseのバージョンアップにより、実行結果が変わる、あるいはエラーが出てしまうといったケースもある。この問題への対処としては、新旧のSQLを全て実行し、その結果を比較するという方法が考えられる。しかし、膨大な数のSQLが使われているアプリケーションでは、この方法は現実的ではない。そこでお勧めしたいのが、オラクル製品に関する技術情報を提供している「My Oracle Support」で非互換情報を抽出し、それをアプリケーションエンジニアが確認するという方法である。おそれく、これが極力少ない工数で検証する上でベストな解となるだろう。
ただし、My Oracle Supportは非互換情報を網羅しているわけではないという点には注意されたい。当然のことながら、未知の情報は掲載されていないためだ。とはいえ、My Oracle Supportには膨大な技術情報が掲載されており、重要な情報は日本語化されている。ぜひ積極的に活用していただきたい。
また、SQL Performance Analyzerでは実行時にエラーとなるSQLを抽出できるので、こちらも併せて活用するとよいだろう。
本番環境のキャプチャーで何度もテストすればリトライの手間を大幅に削減できる
それでは、SQL Performance Analyzerを用いたテストの流れを具体的に見ていこう。
一般的なSQLテストの流れは、まず前段の作業として、テスト計画の策定、対象とするアプリケーションの解析、テスト環境の構築、テストデータやアプリケーションの準備を行い、その上でテストを実施し、チューニング、再テストを行うといった具合になるだろう。これらの作業を全て人手で行った場合、膨大な工数やコストが生じるのは明らかだ。しかも、通常は全ての作業をベンダーが一括で請負契約することが多く、チューニング対象の数が不明なまま見積もられるため、リスクや工数が膨らみがちだ。
これに対して、SQL Performance Analyzerを使った場合、最も多くの工数を要するテスト対象アプリケーションの解析が不要になる他、それぞれのフェーズで不要となる作業も多く、全体として工数を大幅に削減できる。また、テスト計画の策定からテスト実施までを短期間で行えるため、まずはテスト実施までのフェーズをベンダーに委託し、チューニング対象の数を絞り込んだ後にあらためてチューニングフェーズを委託することでリスク/工数を削減できるといったメリットもある。
なお、SQL Performance Analyzerによるテストは、SQLが増えた場合でも、一般的な方法と比べてテスト工数が大きく増えないことも利点の1つだ。つまり、SQLの数が多ければ多いほど、SQL Performance Analyzerによる工数削減の効果が大きくなるといえる。
SQL Performance Analyzerによる工数削減のメリットの中でも特に大きいのが、リトライの工数を大幅に削減できることだ。テストを実施した後、パラメーターを設定し忘れた、あるいはデータベースの構成を変更したといった理由から、再度テストを実施するケースは少なくない。人手でテストしている場合、テストの再実行には大きな手間が掛かり、これがさらなる工数増大を招く。一方、SQL Performance Analyzerを使えば本番環境でキャプチャーしたSQLをいつでもテスト環境で実行できるので、リトライの手間を大幅に削減することが可能なのだ。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
提供:日本オラクル株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2016年1月6日