আমি দুটি স্তরের মধ্যে ছেদ করার চেষ্টা করছি:
- পললাইন স্তরটি কয়েকটি রাস্তার প্রতিনিধিত্ব করে (~ 5500 সারি)
- বহুভিত্তিক স্তর আগ্রহের বিভিন্ন পয়েন্টের চারপাশে অনিয়মিত আকারের বাফারগুলিকে উপস্থাপন করে (~ 47,000 সারি)
শেষ পর্যন্ত, আমি যা করার চেষ্টা করছি তা হল এই অনেকগুলি (কখনও কখনও ওভারল্যাপিং) বাফারগুলিতে পলিইনগুলি ক্লিপ করা এবং তারপরে প্রতিটি বাফারের মধ্যে থাকা সড়কপথের মোট দৈর্ঘ্য যোগ করুন।
সমস্যাটি হচ্ছে বিষয়গুলি খুব কম চলছে। আমি নিশ্চিত যে এটি কতটা সময় নিতে হবে তবে আমি 34 ঘন্টা পরে আমার জিজ্ঞাসাটি বাতিল করে দিয়েছি। আমি আশা করছি যে কেউ আমার এসকিউএল ক্যোয়ারীর সাথে কোথায় ভুল করে ফেলেছে তা নির্দেশ করতে পারে বা এটি করার আরও ভাল পদ্ধতিতে আমাকে নির্দেশ করতে পারে।
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 BY z.name, z.the_geom;
মূল রাস্তার টেবিলের জন্য আমার কাছে একটি জিআইএসটি সূচক তৈরি করা আছে এবং দ্বিতীয় সারণী তৈরি করার আগে একটি সূচক তৈরি করব (কেবল নিরাপদ থাকতে?)
পিজিএডমিন তৃতীয়ের ক্যোয়ারী প্ল্যানটি এমন দেখাচ্ছে, যদিও আমি ভয় করি যে এটির ব্যাখ্যা দেওয়ার মতো দক্ষতা আমার নেই:
"Nested Loop (cost=0.00..29169.98 rows=35129 width=49364)"
" Output: st_intersection(b.the_geom, z.the_geom), b.gid, b.geo_id, b.address_l, b.address_r, b.lf_name, b.lfn_id, b.lfn_name, b.lfn_type_c, b.lfn_type_d, b.lfn_dir_co, b.lfn_dir_de, b.lfn_desc, b.oe_flag_l, b.oe_flag_r, b.fcode_desc, b.fcode, b.fnode, b.tnode, b.metrd_num, b.lo_num_l, b.lo_n_suf_l, b.hi_num_l, b.hi_n_suf_l, b.lo_num_r, b.lo_n_suf_r, b.hi_num_r, b.hi_n_suf_r, b.juris_code, b.dir_code, b.dir_code_d, b.cp_type, b.length, b.the_geom"
" Join Filter: _st_intersects(b.the_geom, z.the_geom)"
" -> Seq Scan on public."roads" b (cost=0.00..306.72 rows=5472 width=918)"
" Output: b.gid, b.geo_id, b.address_l, b.address_r, b.lf_name, b.lfn_id, b.lfn_name, b.lfn_type_c, b.lfn_type_d, b.lfn_dir_co, b.lfn_dir_de, b.lfn_desc, b.oe_flag_l, b.oe_flag_r, b.fcode_desc, b.fcode, b.fnode, b.tnode, b.metrd_num, b.lo_num_l, b.lo_n_suf_l, b.hi_num_l, b.hi_n_suf_l, b.lo_num_r, b.lo_n_suf_r, b.hi_num_r, b.hi_n_suf_r, b.juris_code, b.dir_code, b.dir_code_d, b.cp_type, b.length, b.the_geom"
" -> Index Scan using "buffer1KM_index_the_geom" on public."buffer1KM" z (cost=0.00..3.41 rows=1 width=48446)"
" Output: z.gid, z.objectid, z.facilityid, z.name, z.frombreak, z.tobreak, z.postal_cod, z.pc_area, z.ct_id, z.da_id, z.taz_id, z.edge_poly, z.cchs_0708, z.tts_06, z.the_geom"
" Index Cond: (b.the_geom && z.the_geom)"
এই অপারেশনটি কি বেশ কয়েকদিন ধরে ছড়িয়ে ছিটিয়ে রয়েছে? আমি বর্তমানে এটি উইন্ডোজের জন্য পোস্টজিআইএস-এ চালাচ্ছি, তবে আমি তাত্ত্বিকভাবে এটি অ্যামাজন ইসি 2 এ রেখে সমস্যার আরও হার্ডওয়্যার ফেলে দিতে পারি। তবে, আমি দেখতে পাচ্ছি যে ক্যোয়ারী একবারে কেবল একটি কোর ব্যবহার করছে (এটি আরও ব্যবহার করার উপায় আছে কি?)