データベースの性能を向上させるための方法の一つに、データ検索を高速化するインデックスがある。
主キーに設定された項目や一意性制約が定義された項目にインデックスが設定される。任意にインデックスを設定することも可能。
このインデックスを利用することでレコードを高速に検索することができる。
トランザクション処理においてもインデックスは時間短縮に効果がある。
ただし、データの更新時や追加時にインデックスの更新が必要になるので、インデックスのないものより時間がかかる。
また、インデックスの領域の分だけ多く容量が必要。
データベースは複数の人が利用するので、一つのテーブル・一つのレコードにアクセスが集中するとデータベース全体の性能が悪くなる。
アクセスが集中するようなレコードや・テーブルは他のデータやテーブルと競合しないように、ハードディスクを分けて利用する方法を検討する。
また、更新系のデータと参照系のデータを分けるだけでも効果がある。これらのことは、データベースの物理設計の時点で検討する。
データベースは、データを追加・削除処理を繰り返すと、データの格納領域のなかでデータが不連続な状態で格納される。そのため、アクセス速度が遅くなったり、格納効率が悪くなったりするため、定期的にデータベースの再編成が必要になる。
再編成はデータベース管理システムの機能を利用して行うことができる。
データベースに対するSQL文をクライアント側ではなく、DBMSに保存して、クライアントはそれを呼び出すことで実行することができる。
定期的に同じSQL文を実行する場合は、クライアントからSQLを実行するたびに送るのではなく、DBサーバー側にそのSQL文を保存しておき、それを名前で呼び出すことで実行する。
こうすることで、SQL文を送る送信時間や通信量を軽減することができる。
www.it-shikaku.jp