小编PyM*_*apr的帖子

为什么这个 PostGIS 查询需要这么长时间才能运行?

我一般是 PostGIS 和 SQL 的新手。我正在对多边形运行查询,我希望它只选择不同的几何图形,然后修复 ( ST_MakeValid()) 那些不同的几何图形。从而在修复无效几何图形的过程中删除重复的几何图形。但是,查询需要很长时间才能运行(几天)。这是 SQL 语句:

CREATE TABLE schema.table_geomfix AS 
SELECT gid,id, ST_MakeValid(geom) as geom 
FROM schema.table_polygons 
WHERE geom IN (SELECT DISTINCT geom FROM schema.table_polygons);
Run Code Online (Sandbox Code Playgroud)

分别运行两个 select 语句很快。大约 1 分钟makevaliddistinct陈述和 15 秒的陈述。

  1. 为什么运行组合语句需要这么长时间?
  2. 关于改进查询以使其更快的任何建议?

注意:geom列上有一个索引。

postgresql performance postgis postgresql-performance

2
推荐指数
1
解决办法
522
查看次数