我在SQLServer 2008中有一个巨大的表,它包含技术人员每分钟报告的位置。我需要在此表上进行报告,但为了控制报告中显示的记录数量,需要考虑时间和距离间隔因素。
因此,查询可能看起来像
"Return all records with no less than 5 minutes and/or 300 feet between them".
时间部分已经完成,但我很难处理距离因素。我有每个点的纬度和经度,如果我需要包含SQLServer 2008 空间 UDT以解决问题,我没有问题。
我考虑过的事情:
按时间因子带来记录,并通过计算相邻点之间的距离在客户端应用分离约束,并丢弃落在该因子内的那些。(最简单,但它必须是消耗更多资源的那个)。
将每个技术人员的最后一条记录保存在缓存中,预先计算记录与其前任之间的距离,并解决客户端中的约束。(应该比 1 消耗更少的资源)因为距离是预先计算的,但是由于表很大,它会增加数据集的大小,不确定空间是否值得处理节省)。
使用SQLServer 2008中的空间函数,但老实说,我一直在阅读,但找不到任何可以帮助我解决此类需求的内容。任何GIS专家?
我想选择最好的选择(也许上面没有列出?),IMO 应该是最有效地使用 SQLserver 功能的人。