আমি আমার টেবিলের প্রতিটি সারি (মহাকাশ 1), একই বর্গের নিকটতম বহুভুজের দূরত্ব গণনা করতে Postgis 2.0 নতুন ফাংশন <-> (জ্যামিতি দূরত্ব সেন্ট্রয়েড) ব্যবহার করার চেষ্টা করছি।
আমি নিম্নলিখিত কোডটি ব্যবহার করার চেষ্টা করছিলাম:
WITH index_query AS (
SELECT g1.gid As ref_gid, ST_Distance(g1.the_geom,g2.the_geom) As ENN
FROM "cosn1" As g1, "cosn1" As g2
WHERE g1.gid <> g2.gid AND g1.class = g2.class
ORDER BY g1.gid, g1.the_geom <-> g2.the_geom)
SELECT DISTINCT ON (ref_gid) ref_gid, ENN
FROM index_query
ORDER BY ref_gid, ENN;
তবে আমি তখন সতর্কতাটি বুঝতে পারি:
দ্রষ্টব্য: সূচকগুলি কেবল তখনই কিক্স করে যদি কোনও জ্যামিতির কোনও একটি ধ্রুবক হয় (কোনও subquery / cte এ নয়)। যেমন 'এসআরআইডি = 3005; পয়েন্ট (1011102 450541)' :: a.geom এর পরিবর্তে জ্যামিতি
অর্থাত্ সূচকটি মোটেও ব্যবহৃত হবে না, এবং ক্যোয়ারীটি ব্যবহারের আগের মতো প্রায় একই সময় নেবে:
SELECT DISTINCT ON(g1.gid) g1.gid As ref_gid, ST_Distance(g1.the_geom,g2.the_geom) As ENN
FROM "cosn1" As g1, "cosn1" As g2
WHERE g1.gid <> g2.gid AND g1.class = g2.class
ORDER BY g1.gid, ST_Distance(g1.the_geom,g2.the_geom)
কেউ কি আমাকে এমন কোনও কাজের নির্দেশ করতে পারেন যা আমাকে আমার প্রশ্নের পারফরম্যান্স উন্নত করতে দেয়?
আপনাকে অনেক ধন্যবাদ.