データベースのパフォーマンス
データベースを設計するときは、データベースが重要な機能を適切かつ迅速に実行することを確認する必要があります。パフォーマンスの問題の一部は、データベースが実稼働に移行された後でも解決できます。しかし、データベースの設計が不十分であるために生じるその他のパフォーマンスの問題に対処するには、データベースの構造や設計の変更が必要になることがあります。
データベースを設計および実装するときは、データベース内の大きなテーブルと、データベースが実行する複雑な処理を特定する必要があります。これらのテーブルを設計するときは、特にパフォーマンスについて考慮してください。また、データベースにアクセスできるユーザー数の増加がパフォーマンスに与える影響も考慮する必要があります。
パフォーマンスを向上させる設計変更の例には次のようなものがあります。
大量の行があるテーブルを要約して毎日報告書を作成する必要がある場合は、事前に集計された報告書専用のデータを格納する列をテーブルに追加します。
データベースが過度に正規化されることがあります。つまり、いくつかの相互に関連する小さなテーブルでデータベースが定義されることがあります。データベースがこのようなテーブル内のデータを処理するときは、関連するデータを結合するためにかなり多くの作業を行う必要があります。この追加作業によってデータベースのパフォーマンスが低下します。このような場合は、データベースの正規化の程度を少し減らして、複雑な処理を単純にすると、パフォーマンスが向上します。
ハードウェアについての注意事項
通常、データベースが大きくなるほど、ハードウェアの要件は高くなります。ただし、同時ユーザー数やセッション数、トランザクションのスループット、データベース内での操作の種類などの要因も、ハードウェアの要件を左右します。たとえば、1 TB を超えるデータ ウェアハウスに大企業の売上高、製品、顧客情報が格納され頻繁に分析される場合のハードウェア要件に比べ、学校図書についてのあまり更新されないデータを格納するデータベースのような場合、通常は低いハードウェア要件で間に合います。データ ウェアハウスでは、ディスク ストレージの要件のほかに、より多くのデータをメモリにキャッシュしたり、多くのデータを参照するクエリを高速に処理するために、より多くのメモリやより高速なプロセッサが必要です。
I/O サブシステムまたはストレージ エンジンは、すべてのリレーショナル データベースで重要なコンポーネントであり、計画のほとんどを占めます。通常、データベースの実装を成功させるには、プロジェクトの初期段階で慎重に計画を立てる必要があります。計画では、次の問題について検討する必要があります。
RAID (Redundant Array of Independent Disks) デバイスなど、使用するディスク ハードウェアの種類。詳細については、「ハードウェアベースのソリューションについて」を参照してください。
データをディスクに格納する方法。詳細については、「ファイルとファイル グループの使用」を参照してください。
クエリのデータ アクセス パフォーマンスを向上させるために使用するインデックスの設計。詳細については、「インデックスの設計」を参照してください。
データベースを十分な性能で稼働させるため、すべての構成パラメータを適切に設定する方法。詳細については、「サーバーのパフォーマンスの最適化」を参照してください。