Új hozzászólás Aktív témák

  • kw3v865

    senior tag

    Sziasztok!

    A következő PostgreSQL-es lekérdezésemet szeretném optimalizálni, hogy gyorsabban lefusson.

    SELECT DISTINCT s.region, s.protected, s.gid FROM (
    SELECT CASE WHEN ST_Intersects(p.geom,pr.geom) then 'TRUE' ELSE 'FALSE' END AS protected, p.gid AS gid,r.name AS region
    FROM point p
    LEFT JOIN protected_area pr
    ON ST_Intersects(p.geom,pr.geom)
    LEFT JOIN region r
    ON ST_Intersects(p.geom, r.geom)
    ) s;

    Azt csinálja, hogy kiírja, hogy az adott pont mely régióban (poligon) található, illetve azt, hogy védett területen van-e (protected_area). GIST index-szel el vannak látva a táblák, így most 7,5 M pontra kb. 6 perc alatt fut le, viszont a poligonokat tartalmazó táblák csak 3, illetve 1488 rekordot tartalmaznak.Szerintetek hogyan lehetne még gyorsítani a lekérdezést?

Új hozzászólás Aktív témák