1

誕生日のピエロのデータベースがあるとします。このデータベースには、各ピエロがいるポイント (ピエロの自宅住所の緯度と経度から生成されます) のバイナリ表現を含む地理列が含まれています。geography 列に geo-index があります。

国際的な大手ソフトウェア会社の CEO が、米国内の全従業員と住所 (緯度と経度を含む) の CSV ファイルを送信してきました。従業員ごとに、15 マイル以内に誕生日のピエロが何人いるかを示すレポートを生成する必要があります。

where 条件は次のようになります。

where 
(ClownLocationInBinary).STDistance( geography::Point(EES.lat, EES.lng, 4326) ) < radius

またはこのように:

where
   geography::Point(EES.lat, EES.lng, 4326).STDistance(ClownLocationInBinary) < radius

両方の where 句は、BirthdayClowns テーブルで作成したインデックスを利用するでしょうか? それとも、一方はそれを使用し、もう一方は使用していませんか? もしそうなら、どれがどれですか?

4

1 に答える 1

0

昨日尋ねたところ、SQL Server がインストールされているマシンにいなかったため、クエリ プランを確認できず、検索しても情報を見つけることができませんでした。しかし、その後、クエリ プランを確認する機会があり、where 句の両方のバージョンでインデックスが使用されています。

于 2013-06-18T11:56:08.543 に答える