一方、データベース側からの視点でウェブシステムを見た場合の問題解決方法もある。アシストではOracleを長年提供してきているが、パフォーマンスの問題点はほぼ3点に絞り込むことができるという。
アシスト データベース事業部 技術部 課長 岸和田隆氏 |
「パフォーマンスが悪いとなるとデータベースが犯人にされがちですが、実はそんなことはあまりありません。データベースは呼び出されたデータを渡しているだけですから。ストレージの選定やサーバのスペックという部分に問題がなければ、あとは利用方法に問題があることが大半です」とデータベース事業部 技術部の課長である岸和田隆氏は苦笑する。
Webシステム特有の大きな問題として挙げられるのは、どの言語で書かれたプログラムがアクセスしてくるか、というものだ。「オープンソースでの開発経験が長い方はやりがちですが、CGIやPHPなどはアクセスごとにセッションを確立するため大量のアクセスがあった場合に、その処理だけで負荷が極端に増大してしまいます。これが、Javaのようなコネクションプール型ならばそうした問題がありません。開発にかかる前の計画段階でそうしたことも考える必要があります」と岸和田氏は指摘する。
Webシステムに限らない問題としては、物理モデルが効率的な配置ではないという問題と、SQLの書き方が適切ではないという問題がある。「物理モデルの問題は今後もずっと残っていくと考えられますが、SQLの書き方については改善方法があります。特に自動生成されるSQLは良くないことが多いですが、アドバイスしてくれるツールを利用して修正すれば大丈夫です」と岸和田氏は語る。
アドバイスしてくれるツールというのは、OracleのエンタープライズマネージャーやPerformance Insightなどだ。SQLを分析し、処理遅延の原因となる文の修正方法を提示してくれる機能を利用すれば、問題点をスムーズに解決することができる。
データベース、システム共に、早い段階からパフォーマンスについて考慮して開発を進めるのが、最終的な局面での試験のスムーズさや実稼動時の安定につながる。便利なツールも登場してきている現在、それらを駆使することで効率的かつ効果的な性能試験を実施することができれば、開発時間を圧迫するのではなく、障害対応や原因究明の時間を削減につなげることができるだろう。