目次
インデックスを設定したのに、なぜか遅い…
Accessでパフォーマンス改善の定番といえば「インデックス」です。 でも、せっかくインデックスを設定したのに、思ったほど速くならないことってありませんか?

「ちゃんとインデックス貼ったのに…」
「むしろ遅くなったような…?」



その原因、実はAccess特有の落とし穴にあるかもしれません。
🧠 実はよくある!Accessの“逆効果インデックス”パターン
❌ 型の不一致
クエリやSQLで、フィールドに対して異なるデータ型で比較するとインデックスが使われません。
SELECT * FROM T_売上 WHERE 顧客ID = "123" -- ← 顧客IDが数値型ならインデックス無視!
➡ 顧客ID = 123
と 型を揃えることが重要です。
❌ 関数を使った条件式
WHERE UCase(氏名) = "YAMADA"
のように関数を使うとインデックス無視!
➡ WHERE 氏名 = "Yamada"
など、加工せずに比較するようにしましょう。
❌ Likeのワイルドカードが先頭にある
WHERE 商品名 LIKE "*モニター"
このように先頭にワイルドカードがあるとインデックス無視!
➡ LIKE "モニター*"
など、先頭一致に変えるとインデックスが効きます。
⚠️ 他にもある!Accessならではの注意点
- Nullとの比較(
= Null
は使わずIs Null
を使う) - 結合順序が不適切(リレーションシップを意識する)
- ビュー(SELECTクエリ)同士の連結が遅さの原因になることも
🐾 茶トラのチャーのひとことTips
「インデックス貼れば速くなるってワケじゃないニャ。正しく使ってこそニャ~🐾」



「インデックスも奥が深いニャ。」
✅ 対策のポイント
- データ型とSQL条件をしっかり一致させる
- 不要な関数やLIKEの使い方を見直す
- クエリの設計をシンプルに保つ
📝 まとめ
インデックスは万能ではありません。 Access特有の仕様や制限を正しく理解していないと、 せっかくのインデックスが「宝の持ち腐れ」になってしまいます。



逆に言えば、正しい設計と知識があれば、
Accessは驚くほど速くなるんです❣
🔜 次回予告!
次回は…
「遅い原因はインデックスじゃなかった!?実務でよくある3つの見落とし」をお届けします。
お楽しみに♪
あわせて読みたい




Accessのクエリ、設計ミスで遅くなる?──パフォーマンスを左右する落とし穴とは
はじめに Accessで作ったクエリ、なんだか遅い…。 実は、「設計のちょっとしたミス」が、パフォーマンス低下を招く原因になっているかもしれません。 この記事では、「A…
コメント