ST_Intersection慢查询
我正在尝试在两层之间执行交集: 代表某些道路的折线图层(约5500行) 代表不同兴趣点(约47,000行)周围形状不规则缓冲区的多边形层 最终,我想做的就是将折线剪切到许多(有时是重叠的)缓冲区中,然后对每个缓冲区中包含的道路总长度求和。 问题是事情运行缓慢。我不确定应该花多长时间,但在超过34小时后才中止查询。我希望有人可以指出我的SQL查询出错了,或者可以指出一种更好的方法。 CREATE TABLE clip_roads AS SELECT ST_Intersection(b.the_geom, z.the_geom) AS clip_geom, b.* FROM public."roads" b, public."buffer1KM" z WHERE ST_Intersects(b.the_geom, z.the_geom); CREATE INDEX "clip_roads_clip_geom_gist" ON "clip_roads" USING gist (clip_geom); CREATE TABLE buffer1km_join AS SELECT z.name, z.the_geom, sum(ST_Length(b.clip_geom)) AS sum_length_m FROM public."clip_roads" b, public."buffer1KM" z WHERE ST_Contains(z.the_geom, b.the_geom) GROUP …