Tôi đang sử dụng hàng xóm gần sau Query trong PostGIS:K-gần Neighbor Query trong PostGIS
SELECT g1.gid g2.gid FROM points as g1, polygons g2
WHERE g1.gid <> g2.gid
ORDER BY g1.gid, ST_Distance(g1.the_geom,g2.the_geom)
LIMIT k;
Bây giờ, mà tôi đã tạo ra chỉ số về the_geom cũng như cột gid trên cả hai bảng, truy vấn này là mất nhiều thời gian hơn so với các truy vấn không gian khác liên quan đến tham gia không gian b/w hai bảng.
Có cách nào tốt hơn để tìm hàng xóm gần nhất của K không? Tôi đang sử dụng PostGIS.
Và, một truy vấn được tham gia một thời gian dài bất thường mặc dù tạo chỉ số trên cột hình học là:
select g1.gid , g2.gid from polygons as g1 , polygons as g2
where st_area(g1.the_geom) > st_area(g2.the_geom) ;
Tôi tin rằng, các truy vấn arent hưởng lợi bởi chỉ số ý chính, nhưng tại sao?
Trong khi truy vấn này:
select a.polyid , sum(length(b.the_geom)) from polygon as a , roads as b
where st_intersects(a.the_geom , b.the_geom);
trả về kết quả sau một thời gian mặc dù liên quan đến "con đường" bảng mà là lớn hơn nhiều so với đa giác hoặc bảng điểm và cũng liên quan đến khai thác không gian phức tạp hơn.
Tôi cho rằng câu hỏi của bạn là cách tăng tốc truy vấn? Bạn có thể cho chúng tôi thấy kết quả của 'KIẾN THỨC ANALYZE SELECT ....'? Bằng cách đó chúng ta có thể biết những gì đang xảy ra ở đó. – Thilo
Không, Câu hỏi của tôi là lý do tại sao Ist Truy vấn này đang lấy nhiều hơn 5 lần thời gian thực hiện bởi Truy vấn thứ 3 ở trên !! –
ok, sau khoảng nhiều chờ đợi, cho IInd Truy vấn tôi nhận được thông báo lỗi sau: "hết bộ nhớ cho kết quả truy vấn" và thực hiện truy vấn chấm dứt. Có thể somebosy ném ánh sáng vào điều này? –