我有一个名为'Region'的表,它有2000条记录。在区域表中,我有1个称为点的几何列。现在我有另一个名为Bus_Route的表,其中几何列称为“几何”,有1000万条记录。现在我想要那个区域的点数。我使用以下查询通过使用STcontains来查看天气我的观点是否在该区域。但是这个查询需要很长时间(大约3天)。我在我的Bus_Route表上创建了空间索引,该表有1000万条记录,但也没有帮助。
Select
Region.BlockID,
Bus_Route.geometry
from
Bus_Route,
Region
where
Region.points.STContains(Bus_Route.geometry) = 1
请帮忙!
答案 0 :(得分:2)
有几点意见:
如果您要进行交叉加入 (正如你所说的那样,你的查询正在进行中) 做类似的事情:
选择
Region.BlockID,
Bus_Route.geometry
来自Bus_Route
交叉加入地区
您是否考虑过使用STIntersects代替STContains?如果我正确地解释您的问题,您正在寻找给定路线经过的区域,这意味着两个地理实例之间的交集将是非空的。您编写的查询将显示完全包含在区域内的路线。