gpt4 book ai didi

sql - 比较多边形几何类型的最快方法

转载 作者:行者123 更新时间:2023-12-02 01:00:38 26 4
gpt4 key购买 nike

我们有两个表,其中存储了多边形几何图形。我想获取一个表中存在的多边形,而不是另一个表中存在的多边形。截至目前,我正在进行左外连接并使用 STAsText() 但它需要很多时间。仅供引用,我们有 1.2 亿个多边形在两个表中。有没有快速获取的方法? (可能正在使用空间索引,我不知道这一点)。

仅供引用,我使用的是 SQL Server 2012

最佳答案

应该这样做:

select a.*
from dbo.newPolygon as a
left join dbo.OldPolygon as b
on a.Shape.STEquals(b.Shape) = 1
where b.ID is null

如果您在两个表的 Shape 列上都有空间索引,它应该支持此查询。来自文档:

Spatial indexes support the following set-oriented geometry methods under certain conditions: STContains(), STDistance(), STEquals(), STIntersects(), STOverlaps(), STTouches(), and STWithin(). To be supported by a spatial index, these methods must be used within the WHERE or JOIN ON clause of a query, and they must occur within a predicate of the following general form:

geometry1. method_name( geometry2) comparison_operator valid_number

(强调我的)事实上,由于我们正在按照文档中指定的方式使用 STEquals(),所以我们应该可以开始了。

关于sql - 比较多边形几何类型的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28986816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com