SQLパフォーマンスの「見える化」をプロセス全体に適用する
運用フェーズにおける全般的なパフォーマンス管理
運用段階では、ピンポイントでのSQLパフォーマンス問題への対応ではなく、総合的なパフォーマンス管理が必要になります。ここで重要なのは、パフォーマンスの低下ないしはその予兆に対して迅速かつ適切に対応すること。そして、予想されるパフォーマンス低下に対して事前に対処しておくことです。
パフォーマンス低下が起きると、ユーザーは体感的に問題があると認識したり、従来よりも操作性が劣ると感じるようになります。しかし、システムレベルで見ると、このような体感レベルのパフォーマンス低下は、すでに甚大なパフォーマンス問題が発生し、その影響が広がった後であることが多く、この時点からの対応では遅すぎるといってよいでしょう。
そこで必要となるのが、24時間パフォーマンス監視です。DB Optimizerのような分析とチューニングを目的としたツールではなく、データベースが安定して稼働していることをモニターし、もし、データベースパフォーマンスがしきい値よりも下回ることがあれば、あらかじめ設定したアクションを実行するようにします。
このような目的のデータベースパフォーマンス監視ツールは、DB Optimizerの最上位のエディションであるDB Optimizer Enterpriseに搭載されています。これは、DB Performance Centerと呼ばれるツールで、24時間データベース監視を行い、パフォーマンス上の問題が発生したときには、担当者にメールを送信するなど、しかるべきコマンドを実行するなどの定義ができます。
DB Optimizerからは付属のクライアントツールによって、DB Performance Centerによる24時間監視の状況をモニターできるので、稼働状況の確認にも利用できます。
さらに、予想されるパフォーマンス低下に対する事前の対処としては、データベースの状況を診断するという方法があります。データベースのサイズは日々成長していきます。しかし、ストレージサイズは有限なので、実際どのような時期にどのようなパフォーマンス上の影響が出てくるのかを予想しておかないと、データベースサイズに起因するトラブルに遭遇してしまいます。この種の問題は、ディスク増設のためのコストや移設のためのメンテナンススケジュールにも関係するので、問題のあるSQLを切り分けるよりもやっかいです。
DBArtisanというデータベース管理ツールは、DB Optimizerと同様に、Oracle、MS SQL Server、Sybase、DB2など複数のデータベースを単一のコンソールで管理することができます。このツールに搭載されたAnalyst Packを用いれば、データベースのメモリやディスクの使用状況の診断、データベースサイズの成長状況のトレンド分析によるキャパシティプランニングなどができます。
図3:DBArtisanによるパフォーマンス診断とキャパシティプランニング(クリックで拡大) |
まとめ
データベースはシステム性能を左右する重要な要素です。そのデータベースを安定かつ高速に実行させるには、そこで発行されるSQLクエリーだけでなく、アプリケーションやデータベース環境を含めた総合的なケアが必要です。
そして、それらの情報を把握することは容易ではないため、ツールによる「見える化」が重要になるのです。「問題が顕在化したときには手遅れ」とならないために、「見える化」のための投資を惜しむべきではないと思います。
3回にわたってSQLパフォーマンス問題の「見える化」について紹介してきました。リアルタイムでさまざまな情報を分析できるツールの魅力を静的な画像と文書だけで紹介するのには限界がありますので、ぜひビデオやセミナーで詳細を確認していただければと思います。
【参照リンク】