Ahoj, statistiky mám OK, ono to bude tím, že je to prostě náročné.
Čisté a jednoduché řešení je tohle (účelem je získat seznam SO, které se mají zobrazit na mapě): select kod from ruian.rn_stavebni_objekt so left join gis.cz_polygon polygon -- polygony v OSM on st_intersects(so.hranice, polygon.way) and polygon.building is not NULL and polygon.building <> 'no'::text where so.hranice is not NULL and not so.deleted group by kod having sum(st_area(st_intersection(so.hranice, polygon.way))/st_area(so.hranice)) < 0.7 or sum(st_area(st_intersection(so.hranice, polygon.way))) is NULL; jenže to bude pokaždé počítat ty plochy a to je pomalé tak to zkusím rozdělit na: - to samé, jen RIGHT join a počítat plochy tedy nebude u těch co se nekryjí UNION select kod from ruian.rn_stavebni_objekt so left join gis.cz_polygon polygon on st_intersects(so.hranice, polygon.way) AND polygon.building is not NULL and polygon.building <> 'no'::text where so.hranice is not NULL and not so.deleted and polygon.osm_id is NULL -- tedy všechny, co se nepřekrývají vůbec. Ten join bere přes index, tedy && bbox a pak recheck. Asi to stejně moc nepomůže, moc se neušetří. Pořád to bude odhadem kolem 10M výpočtů ploch kvůli tomu, že jeden SO v RUIAN bude geometricky vztažen k více budovám v OSM. No asi to nechám a nebude se to počítat každý den :-\ Dne Pá 31. října 2014 09:23:23, Marián Kyral napsal(a): > Znám hlavně Oracle a tam taky občas narážím na roztodivné záhady s query > plány. Máš aktuální statistiky? Možná by to chtělo přidat nebo ubrat nějaký > index ;-) _______________________________________________ Talk-cz mailing list Talk-cz@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-cz