いかがでしたでしょうか。動画では簡略化して表現しましたが、実際の環境ではSQLの本数が数千〜数十万本の単位になるでしょう。人力で1本1本調べるのはほぼ不可能ですが、SPAを使うことで、SQLの新旧比較からレポート化までを自動で実行してくれます。
では、SAPを使った評価フローの詳細を解説していきます。
SPAでは、SQLの評価を以下の流れで行います(図1)。
本番環境で処理する全てのSQLのうち、STS(SQLチューニングセット)に格納されたものがテスト対象のSQLです。
STSはカーソルキャッシュやAWR(Automatic Workload Repository)から作成できますが、テスト対象のSQLをなるべく増やすために、一定期間・一定間隔でカーソルキャッシュからSQLを取得します。AWRからは過去に実行したSQLを取得できますが、そもそもAWRには負荷の高いSQLの情報しか記録されません。こちらには注意してください。
次にSPAの機能によってSQLがテスト環境で実行されます。ここで実行可能なSQLなのか、エラーとなるSQLなのかが選別されます。バージョンアップによって「構文チェックが厳密化したことからエラーとなるSQL」などがここで見つかります。さらに、実行可能なSQLのうち「実行計画に変化があるかどうか」の観点でも選別され、実行計画が変わるもののうち「性能が低下するもの」と影響がないもので分けられます。ここでの「性能」の基準は、経過時間、コスト、バッファー読み取り量などの軸で判断されます。
Copyright © ITmedia, Inc. All Rights Reserved.