データベースを調整し保守するとはどういう作業をいうのか、また、なぜそのような作業が必要なのかを考えておきましょう。
- データベースがシステムの効率を左右する -
大規模なRDBMS(データベース管理システム)は、常に大量のデータを保存し、管理し、読み書きしています。ユーザーからは端末のアプリケーションがデータを処理しているように見えますが、最終的にはネットワークを介してつながったデータベース・サーバーのデータベース・エンジンがデータを処理している……ということは、敢えて説明するまでもないでしょう。
データベース・エンジンは、日々休むことなく、ネットワークを介してやってくるクライアントからの処理要求に応え、抱えている大量のデータを処理しています。業務システムの『要』と言ってもいいでしょう。そのため、データベース・エンジンを含むRDBMSの処理能力が低下すれば、業務システム全体の能力に影響を及ぼします。
逆に言えば、RDBMSが快適にスムーズに動作すれば、システム全体の処理効率が向上することにもなります。そのためには、RDBMSとデータベースを最適な状態に調整しなければなりません。これを(データベースの)「チューニング」と言います。
- 稼働してからが勝負 -
事前にしっかり設計しておけば、データベースを見直す必要などないのじゃないか? という気もします。が、決してそんなことはありません。テーブルが作られたり削除されたり、レコードが増えたり減ったり……。データベースは、動いている間にどんどん姿を変えています。
このデータベースの変化を、事前に完璧に把握することは困難です。どのテーブルが、あるいはどのレコードが、そしてどのフィールドが最も頻繁にアクセスされているか? それに基づいて、例えば最も効率的なインデックスの設定を考える必要があります。一度設定したからといって、将来までそのままでよいという訳ではありません。
また、データベースの使用頻度に基づいた定期的なバックアップ計画も必要です。机の配置などオフィスのレイアウト変更に伴って、ネットワーク構成が変わっているかもしれません。すると、知らぬ間に無駄な配線がされている可能性も出てきます。
このように、日々業務を進めていくうちに、データベースとそれを利用する業務システム全体の状況が変わり、いつの間にか当初予想していたパフォーマンスを発揮できなくなっていることもあるのです。
データベースの調整と保守は、稼働してからが勝負です。
- システム全体のチューニングを -
データベースをチューニングする――というと、例えばテーブルの最適化を連想する人も多いかと思います。テーブルの最適化は、テーブル同士の関連付けを無駄なく行うため、目的の業務で用いるデータを複数のテーブルに合理的に分割し、各テーブルのフィールド構成も見直すという作業です。
もちろんテーブルの最適化は重要なことですが、単にひとつひとつのデータベースに対して構成を見直すだけでは、業務システム全体の効率化を実現できません。また、テーブルの最適化はシステムの設計時に行っておくべきことであって、稼働してから見直す必要があるとすれば、それは設計に間違いがあったことになります。
データベースのチューニングとは、そのような事前設計段階で見越せる問題が対象なのではなく、実際にはクライアント・サーバー型ネットワークを基盤とした業務システム全体のチューニング――最適化を指します。
そのためには、以下の点に注目するべきです。
・個々のデータベースの最適化
個々のデータベースが無駄なく動作できること。
・RDBMSの最適化
RDBMS自体が無駄なく動作できること。
・ハードウェアの最適化
サーバー、クライアント共に快適に動作できること。
・ネットワークの最適化
ネットワーク全体が効率的に稼働できること。
・アプリケーションの最適化
個々のアプリケーションが効率的に動作できること。
これらについて詳しく見ていきましょう。
|
|
|