|
▼くま さん:
こんにちは。
>「Company」のみや「Branch」のみの検索や処理を行うなら、
>個別のindexも含め3回セットした方が好ましい。
>という事なのでしょうか。
当方もAccess に関する知識が大した事ないため、知りません(笑)
という事で検証検証…。
12万件のレコードを持つテーブルから、
無作為に50件のレコードを抽出するコードを組んでみました。
(テーブルは郵政公社の HP から全国の郵便番号情報の
CSVファイルを落として作成した手抜きのものです)
2つのフィールドを主キーにしたものとインデックス無しのもので実験開始…。
初めは抽出に「FindFirst」メソッドを使っていたため、
全くと言ってよいほど差が付かなかったのですが、
「Seek」 メソッドを使うと恐るべき結果となりました。
インデックス無し → 21 秒
Seek メソッドよる抽出 → 0 秒(1秒以下)
Seek メソッドは
Set RS = CurrentDb.OpenRecordset("テーブル名", dbOpenTable)
RS.Index = "PrimaryKey"
RS.Seek "=", "あきる野市", "伊奈"
のように、初めに使うインデックスを指定して、
次に検索のキーワードを「 , 」で区切って指定する事によって検索を掛けます。
ここで "PrimaryKey" を指定する事で2つのフィールドに対して
それぞれ検索キーワードを指定してする事が可能でした。
という事で、鍵マークだけで大丈夫…のような気がします。
(あくまでも当方が検証の結果ですけど)
※ 長くなってすみませんでした。
|
|