Indexing 如何在SQL CE中高效地搜索作为道路交叉点的附近地理节点?
我有以下疑问:Indexing 如何在SQL CE中高效地搜索作为道路交叉点的附近地理节点?,indexing,sql-server-ce,storage,spatial,Indexing,Sql Server Ce,Storage,Spatial,我有以下疑问: var nodes = DB.Nodes .Where(x => x.Lon > 486400 && x.Lon < 486600 && x.Lat > 5025100 && x.Lat < 5025300)
var nodes = DB.Nodes
.Where(x => x.Lon > 486400
&& x.Lon < 486600
&& x.Lat > 5025100
&& x.Lat < 5025300)
.Join(DB.RoadNodes, x => x.Id, y => y.NodeId, (x, y) => x);
var nodes=DB.nodes
其中(x=>x.Lon>486400
&&x.Lon<486600
&&x.纬度>5025100
&&x.纬度<5025300)
.Join(DB.RoadNodes,x=>x.Id,y=>y.NodeId,(x,y)=>x);
这将搜索靠近某个位置的DB.nodes
中的所有节点,然后通过与DB.RoadNodes
进行连接来检查该节点是否为道路交叉口;但是,这需要几秒钟的时间,速度很慢
看起来我要做两件事:
Where
部分,该部分本身需要~5
秒,我听说了一些关于Spatial的事情Join
部分,该部分仅需剩余的~15
秒,我需要一个索引,对吗Unique()
,这会使查询稍微长一点,但我想如果查询本身运行得很快,这应该不是问题。只是他加入会带来双重结果,还是我应该用另一种方式加入