SQL Server:空间索引和边界框

问题描述 投票:0回答:0

我有两个表,每个表都有一个SHAPE Geom Column,我正在努力获得第一个表中每个形状与第二个表之间的相交区域。

第二个表有数百万行,因此我的查询需要很长时间才能执行。 我想使用以下方法在 SHAPE 列上创建索引:

create spatial index SPIX_Shape on LAND_V1(Shape) using geometry_auto_grid

我收到以下错误消息:

The CREATE SPATIAL INDEX statement is missing the required parameter 'BOUNDING_BOX'.
Validate the statement against the index-creation syntax.

我是空间数据世界的新手,如果我在这里错了,请纠正我。 最初,我认为边界框应该由数据库引擎自动创建,检查每个单独的形状 Geom 并在索引时为其创建一个边界框。如何为我的数据手动指定边界框?

然后那个边界框会影响我最后计算的相交区域吗?它会根据 GeomType [Polygon/MultiPolygon/GeometryCollection etc..] 的不同而有所不同吗?

这是我的查询:

select          
                s1.*,
                s2.Shape.STIntersection(s1.Shape) as SHAPE
from   LAND_V1 s1
inner join LAND_V2 s2 -- biggerTable
ON s1.Shape.STIntersects(s2.Shape) = 1 

我将如何在这里利用空间索引

sql-server sql-server-2012 geospatial spatial spatial-index
© www.soinside.com 2019 - 2024. All rights reserved.