尝试使用新的简化的the_geom更新PostGIS的the_geom列?

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

我有一个multipolygon the_geom字段的表。一些多面体非常详细,查询运行缓慢,所以我用st_simplify_preserve_topology简化了the_geom。那部分是成功的,但现在我正在尝试用新的替换旧的the_geom字段,但查询的挂起时间比我想象的要长。

这是我第一次跑的,它在大约60秒内跑得很快。

SELECT ST_Multi(ST_SimplifyPreserveTopology(the_geom,0.005)) as fwz_simple FROM fwz;

然后,当我尝试更新表格时,它会在等待约30分钟后运行并且永远不会完成。

UPDATE fwz SET the_geom = subquery.the_geom FROM (SELECT ST_Multi(ST_SimplifyPreserveTopology(the_geom,0.005)) as fwz_simple FROM fwz) as subquery;

查询是否知道将几何放在整个表的上下文中的哪个位置?换句话说,UPDATE语句如何知道哪个名称等字段与几何对齐?那是什么导致了延迟?

感谢您的任何帮助。如果需要,我当然可以提供更多细节。

postgresql postgis
1个回答
1
投票

对于表中的每一行,您将使用子查询中的每个简化几何更新几何。最后,所有几何都是相同的(子查询中的最后一个)。

您可以跳过整个子查询并直接处理每个行几何:

UPDATE fwz 
SET the_geom = ST_Multi(ST_SimplifyPreserveTopology(the_geom,0.005));
© www.soinside.com 2019 - 2024. All rights reserved.