जवाबों:
मुझे सचमुच बस कुछ मिनट पहले यह पता चला: http://explain.depesz.com/ । आप अपने EXALAIN ANALYZE के परिणामों में पेस्ट करते हैं और यह आपको दिखाता है कि कहां समस्याएं हो सकती हैं (यह रंग कोडित भी है)।
सहायता अनुभाग से ...
धीमी गति से प्रश्नों का वास्तविक कारण खोजने के लिए Expl.d.desz.com टूल है। आम तौर पर, कोई भी EXALAIN ANALYZE क्वेरी का उपयोग करेगा; और आउटपुट पढ़ें। समस्या यह है कि आउटपुट के सभी भागों को किसी के द्वारा आसानी से समझा नहीं जा सकता है, और यह हमेशा स्पष्ट नहीं है कि 17.3ms में निष्पादित नोड 100 मीटर में चलने वाले की तुलना में तेज या धीमा है - इस तथ्य को देखते हुए कि पहले एक को 7 निष्पादित किया गया है बार। साइट का उपयोग करने के लिए, बस इसके पहले पृष्ठ पर जाएं और वहां पेस्ट करें अपने psql से आउटपुट का विश्लेषण करें। यह आउटपुट इस तरह दिख सकता है। अपलोड करने के बाद आपको पृष्ठ पर निर्देशित किया जाएगा, जो पार्स और अच्छी तरह से दिखाता है (ठीक है, मेरे लिए कम से कम अच्छा है): महत्वपूर्ण भागों पर जोर देने के लिए रंगीन। यह इस तरह दिख सकता है। साइड नोट: रंगीन उत्पादन के लिए यूआरएल लगातार है, तो आप बस इसे दूसरों को दिखाने के लिए इसका इस्तेमाल कर सकते हैं - उदाहरण के लिए - फ्रिनोड पर irc चैनल #postgresql पर उन अच्छे लोगों के लिए। यह ग्राफ महत्वपूर्ण चीजों को चिह्नित करने के लिए 4 रंगों का उपयोग करता है: सफेद पृष्ठभूमि - सब कुछ ठीक है पीला पृष्ठभूमि - दिए गए नोड चिंताजनक है भूरे रंग की पृष्ठभूमि - दिए गए नोड अधिक चिंताजनक लाल पृष्ठभूमि है - दिए गए नोड बहुत चिंताजनक है कि किस रंग का उपयोग किया जाता है, किस मोड के आधार पर चुना जाता है आप का उपयोग करेंगे: "विशेष", "समावेशी" या "पंक्तियाँ एक्स"।
मुझे पोस्टग्रेज के लिए किसी भी उपकरण के बारे में पता नहीं है जो यह एल्गोरिथम करता है, और मेरी राय में मानव मस्तिष्क (और अक्सर देव वातावरण में थोड़ा सा प्रयोग) वास्तव में यहां एकमात्र उपयुक्त उपकरण है। इसमें बहुत सारे कारक शामिल होते हैं, जिसमें यह भी शामिल है कि क्वेरी प्लानर भी आपके सूचकांक का उपयोग करने के बारे में सोचेंगे या नहीं - कुछ ऐसा है जो आपके इंस्टॉलेशन के क्वेरी टेबल सेटिंग्स और आकार / आँकड़ों को सम्मिलित करने के तरीके से निर्धारित होता है ( रों)।
सबसे अच्छी सिफारिश जो मैं कर सकता हूं वह है एक करना EXPLAIN ANALYZE
( ANALYZE
महत्वपूर्ण है - यह आपको क्वेरी और सबप्लान रन बार देगा), परिणाम स्वयं देखें और सबसे बड़ी संख्या पर हमला करें जो आप पहले देखते हैं। आप शायद EXPLAIN आउटपुट (विशेष रूप से 9.0 में JSON आउटपुट के साथ) को तोड़ने के लिए एक पार्सर लिख सकते हैं, लेकिन मुझे अभी तक इससे निपटने वाले किसी व्यक्ति का पता नहीं है (यह मूल रूप से MS-SQL के लिए ऑप्टिमाइज़र्स है ...)
कुछ भी नहीं उत्पादन ग्रेड, लेकिन जिज्ञासु के लिए, ऐसा कुछ लागू करने के लिए एक शोध परियोजना थी। "PostgreSQL सूचकांक सलाहकार" के लिए खोजें।