আপনার পোস্টগ্রিজ এবং / অথবা স্কুয়েল দক্ষতার উপর নির্ভর করে আপনার বেশ কয়েকটি বিকল্প রয়েছে:
আপনি কোনও বিশেষ বাধা মারছেন কিনা তা জানতে এক্সপ্লেইন কমান্ডের মাধ্যমে ক্যোয়ারী বিশ্লেষণ করুন । সতর্কতা: কখনও কখনও এক্সপ্ল্যান এর আউটপুট বুঝতে অসুবিধা হতে পারে
আপনি যদি আশা করেন যে টেবিল 1-এর বেশিরভাগ বা জ্যামিতির কোনও উল্লেখযোগ্য অংশটি একটি বহুভুজকে ছেদ করে না তবে আপনি একটি সরল বহুভুজের বিরুদ্ধে প্রাথমিক শর্ত প্রয়োগ করার চেষ্টা করতে পারেন (অর্থাত্ ছোট টুকরাগুলিতে গুণকটি ভেঙে) এবং তারপরে কেবল ভারি মাল্টিপলিজোন ছেদটি চালান on ফলাফল। একটি উদাহরণ জন্য নিচে দেখুন।
যদি এবং কেবলমাত্র সিপিইউ যদি বাধা হয় (যেমন সার্ভারটি কম্পিউটারের ছেদগুলি আটকে থাকে) তবে আমি আপনাকে দৃly়ভাবে পরামর্শ দিচ্ছি যে আপনি একটি বড়, দ্রুত, আরও শক্তিশালী সিপিইউ পান বা এক সময়ের হাই-সিপিইউ ইনস্ট্যান্ট ভাড়া নেবেন যখন আপনি অ্যামাজনের ইসি 2 বন্ধ করবেন এবং আপনি যখন তা ধ্বংস করবেন সম্পন্ন
আইটেম 2 এর উদাহরণ উদাহরণ:
SELECT DISTINCT ON (st1.userid) st1.userid ,ST_AsText(st1.position), st1.timestamp
FROM (
select userid, position, timestamp from table1
WHERE ST_Intersects ( YOUR_MULTIPOL_BOUNDS_HERE,position)
) as st1
WHERE ST_Intersects ( ST_GeomFromText('a multiypolygon geom goes here',4326),st1.position)
ORDER BY st1.userid, st1.timestamp desc
পারফরম্যান্স উন্নত করতে আপনি অস্থায়ীভাবে সাবটেলাইট st1 কে টেবিল হিসাবে সাময়িকভাবে রূপায়িত করতে পারেন যাতে আপনি এটি সূচী করতে পারেন।
@ নিক্লাস মন্তব্যগুলিতে ঠিক উল্লেখ করতে পারে যে প্রস্তাবনা 2 উদাহরণস্বরূপ সাহায্য না করা উচিত। তিনি ঠিক আছেন, তবে আমি মনে করি আমিও (আংশিক) ঠিক আছি।
প্রকৃতপক্ষে মনে হয় পোস্টমিস এমএল-তে ঠিক গত নভেম্বরেই খুব অনুরূপ একটি প্রশ্ন জিজ্ঞাসা করা হয়েছিল (এবং উত্তর দেওয়া হয়েছিল):
http://postgis.refractions.net/pipermail/postgis-users/2011-November/031344.html
এবং প্রস্তাবটি প্রমাণ করে দেয় যে বহুভুজটি ভেঙে দেওয়া উচিত যাতে সূচকটি সবচেয়ে কার্যকরভাবে মিথ্যা ছেদগুলি ফিল্টার করতে পারে যা অন্যথায় সাধারণ সীমানা চেক দ্বারা চালিত হতে পারে।