4

ロケーションのテーブルを含む Microsoft SQL Server データベースがあります。各場所には、住所と緯度と経度の座標があります。

私のアプリケーションでは、ユーザーが郵便番号を入力すると、最寄りの場所のリストが返されます。これが私のアプローチです。a) zipcode DB を使用して、緯度、経度で郵便番号を検索します (これが中心点です)。b) このような検索を実行します

SELECT Position_ID, distance(pos_lon,pos_lat,zip_lon,zip_lat) dist 
FROM Positions
ORDER BY dist

「距離」は、2点間の距離を計算する関数です。

問題は、ロケーション DB が増加するにつれて、これらの検索を実行する時間が長くなり始めていることです。

より良いアプローチはありますか?

4

3 に答える 3

0

どのバージョンのSQLサーバーですか?2008年の場合は空間タイプを見てください。

http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx

編集:また、特定の方向に遠くまで行きたくないので、そのクエリをwhereで制限するとおそらく役立つでしょう。

于 2010-02-17T19:36:59.107 に答える