4
ST_Intersectionスロークエリ
2つのレイヤー間の交差を実行しようとしています。 一部の道路を表すポリラインレイヤー(最大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 …