mssql空间查询性能下降

时间:2015-11-19 09:26:47

标签: sql-server query-performance point-clouds spatial-query spatial-index

我有一个表dbo.ashfill_pointCloud,它包含大约300万个几何点。然后我绘制多边形(矩形)并运行查询以查找位于该多边形内的所有点的z值的平均值。

表现非常缓慢且不一致。

查询:

`select @averageZ = NULLIF( AVG(NULLIF(Ogc_geometry.Z,NULL)),NULL) 
                            FROM dbo.ashfill_pointCloud WITH (INDEX(si_geom_points)) 
                            WHERE Ogc_geometry.STWithin(@deltablock)=1 `

我在dbo.ashfill_pointCloud表上使用空间索引(si_geom_points),其设置如下:

边界框:
X分钟:12700
Y-min:-2940200
X-max:13300
Y-max:-2938800

一般:
Tesselation Scheme:几何网格
每个对象的单元格:16

网格
等级1:中等
Level2:中等
Level3:中等
Level4:中等

指定边界框以包含dbo.ashfill_pointClouds表中的所有点。我还尝试了许多其他索引设置,例如不同的网格级别,每个对象的更多单元格等,没有运气。

对于某些区域,查询似乎执行速度极快,但对于其他区域而言极其缓慢(以小时为单位)。我也注意到如果多边形内没有点,它也会大大降低性能。我也尝试过使用其他方法,比如STIntersects(),具有相同的性能。

对于我可能做错的任何想法都将不胜感激。

0 个答案:

没有答案