私は 300 万の企業レコードを含む SQL Server 2012 データベースを持っており、名前と住所のフィールドに where like 句を使用して検索できます。これはかなり速く動作します。
ここで、オプションのポイント + 距離パラメーターを使用してこのクエリを拡張しています。これらのパラメーターが使用されると、クエリはそれらを使用します。
これで、列だけを検索するvarchar
作業が非常に高速になりました。緯度/経度(ポイント)+距離だけでの検索も高速です。しかし、2つを組み合わせると、非常に遅くなります。
私が間違っている可能性があること、またはインデックスをどのように設定する必要があるかについて何か考えはありますか?
今、私はこれらのインデックスを持っています:
PK_CompanyId (主キーに付属する標準インデックス)
IX_CompanyData (検索されている VARCHAR フィールドのインデックス。このインデックスには含まれる列に Lat & Long 列があります)