• ベストアンサー

INDEX SEEKについて

 主キーを設定した後、検索をかけるとClustered Index Scan になってしまい、大変遅くなってしまいます。  Index Seek にしたい場合、どのようにすればいいのでしょうか?    初心者なのであまりよくわかってないので、どなたかすいませんが、お教え願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • hamha
  • ベストアンサー率61% (83/135)
回答No.1

検索ではなくて抽出だと思いますが、 抽出をしたいフィールドはどのフィールドでしょうか? 抽出したいフィールドにはインデックスを設定していますか? 抽出条件を設定する場合は、先頭一致もしくは完全一致でないと、全件サーチしますので抽出に要する時間は長くなります。下に例を示します。 Index Scan 遅い 部分一致:SELECT * FROM T_顧客 WHERE 名前 LIKE '%山%' 後方一致:SELECT * FROM T_顧客 WHERE 名前 LIKE '%山' Index Seek 早い 先頭一致:SELECT * FROM T_顧客 WHERE 名前 LIKE '山%' 完全一致:SELECT * FROM T_顧客 WHERE 名前 = '山田' 部分一致抽出で早くしたいのであれば、2ステップでの抽出という手もあります。 ・特定の条件である程度絞り込んでから、次に部分一致抽出 例:10000件→100件→部分一致抽出 それから、必要なフィールドのみ出力することも重要です。(SELECT * は使わない)

TENEHT
質問者

補足

参考になりました。ありがとうございます。

関連するQ&A