レコード数が何万件にもおよび検索に時間がかかる場合にはインデックスを作成すると効果のあることがあります。
インデックスは、テーブルのデータ位置を格納するデータベースです。通常、テーブルを作成する時、主キーと外部キーについては、自動的にAccessが、インデックスを作成します。
得意先名簿などで、会社名で検索することが多い場合には、会社名のフィールドにインデックスを設定しておくと検索の速度が速くなります。
● 手順 ●
・単一のフィールドにインデックスを作成したい場合
(1)インデックスを作成したいテーブルをデザインビューで開きます。
(2)インデックスを作成するフィールドの行セレクトをクリックします。
(3)テーブルウィンドウ下部の[インデックスプロパティ]をクリックし、[はい(重複あり)]を選択します。
ここで、はい(重複なし)]を選択すると、このフィールドは、同じ値のデータを入力できない(固有のデータしか入力できない)設定にすることも可能です。
・複数のフィールドにインデックスを作成したい場合
例えば、会社名と担当者、両方のフィールドを使用して検索を行いたい場合です。
(1)インデックスを作成したいテーブルをデザインビューで開きます。
(2)[表示]-[インデックス]で、インデックスダイアログを表示させます。
(3)空白行のインデックス名の列に適当なインデックス名を入力します。(例えば、この場合には、会社担当者)
(4)名前をつけた行の[フィールド名]列にインデックスを作成したいフィールドの名前を選択します。(この例では、会社名)
(5)複数のフィールドを指定する場合は、さらに1行下げて、インデックス名は、空のままにして、[フィールド名]列にフィールド名を選択、追加します。(この例では、担当者)
(6)設定したインデックスの削除は、[インデックス]ウィンドウで、削除するインデックスの行を選択し、[Delete]キーを押します。
定義、変更、削除したインデックスは、テーブルの定義を保存するときに更新されます。
● 補足 ●
複数フィールドのインデックスを作成すると、すべてのフィールドに対して検索値を指定しなくても、1つ目のフィールドから始まる連続した検索条件の指定に対しては複数フィールドのインデックスが有効になります。したがって、最初のフィールドが、検索に使用されていないと複数フィールドのインデックスは無効になります。
インデックスは、データが追加される時にインデックスも書き換えられます。したがって、データの追加、更新などが頻繁に行われている場合は、データの追加、更新などが遅くなる場合もあります。