SQLServer 2008に巨大なテーブルがあり、技術者によって毎分報告された位置が含まれています。このテーブルについてレポートする必要がありますが、レポートに表示されるレコードの量を制御するには、時間と距離の両方の分離要因を考慮する必要があります。
したがって、クエリは次のようになります
"Return all records with no less than 5 minutes and/or 300 feet between them".
時間の部分はできましたが、距離の部分で苦労しています。各ポイントの緯度と経度がわかっているので、問題を解決するためにSQLServer 2008 空間 UDTを含める必要がある場合でも問題はありません。
私が検討したこと:
時間係数によってレコードを取得し、隣接するポイント間の距離を計算してクライアントに分離制約を適用し、係数内にあるものを破棄します。(最も簡単ですが、より多くのリソースを消費する必要があります)。
技術者ごとの最後のレコードをキャッシュに保持し、レコードとその前のレコードの間の距離を事前に計算して、クライアントの制約を解決します。(ただし、距離は事前に計算されているため、1 より少ないリソースを消費する必要があります)。ただし、テーブルが BIGであるため、データセットのサイズが大きくなります。スペースが処理の節約に見合うかどうかはわかりません)。
SQLServer 2008で空間関数を使用しますが、正直なところ、私は読んでいて、このタイプの要件を解決するのに役立つものを見つけることができませんでした。GISの専門家はいますか??
可能な限り最良のオプションを選択したいと思います(おそらく上記にリストされていませんか?)。IMOは、SQLserver機能を最も効率的に使用するものでなければなりません。