PostgreSQL EXPLAIN विज़ुअलाइज़र
EXPLAIN ANALYZE JSON को समय, अनुमान और बफ़र वाले पढ़ने योग्य प्लान ट्री में बदलें
इनपुट
EXPLAIN (FORMAT JSON) का आउटपुट पेस्ट करें। QUERY PLAN हेडर और + चिह्नों वाला psql आउटपुट भी चलता है।
5 MB तक, आपके ब्राउज़र में विश्लेषित, कभी सहेजा नहीं जाता।
सारांश
नीचे दी गई कमांड चलाएँ, JSON परिणाम बाईं ओर पेस्ट करें, या कोई उदाहरण लोड करें।
सुझाई गई कमांड
EXPLAIN ( ANALYZE, BUFFERS, SETTINGS, WAL, VERBOSE, FORMAT JSON ) SELECT ...;
ANALYZE स्टेटमेंट को सच में चलाता है। INSERT, UPDATE या DELETE को BEGIN और ROLLBACK में लपेटें।
प्लान
EXPLAIN प्लान की प्रतीक्षा है।
संबंधित टूल्स
यह क्या दिखाता है
PostgreSQL EXPLAIN Visualizer, EXPLAIN (FORMAT JSON) आउटपुट को फ़ोल्ड होने वाले प्लान ट्री, क्रमबद्ध होने वाली नोड तालिका और फ़ॉर्मैट किए गए मूल JSON में बदलता है। सारांश में निष्पादन और योजना समय, नोड संख्या, सबसे धीमा नोड, सबसे बड़ी पंक्ति अनुमान चूक और shared buffers के बाहर से पढ़े गए ब्लॉक दिखते हैं। किसी भी नोड को चुनकर PostgreSQL द्वारा बताए सभी फ़ील्ड देखें।
प्लान कैसे लें
अपनी क्वेरी के साथ EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL, VERBOSE, FORMAT JSON) चलाएँ और परिणाम पेस्ट करें। QUERY PLAN हेडर, + निरंतरता चिह्नों और पंक्ति-गिनती फ़ुटर वाला psql आउटपुट अपने आप साफ़ हो जाता है। ANALYZE स्टेटमेंट चलाता है, इसलिए INSERT, UPDATE और DELETE को BEGIN और ROLLBACK में लपेटें। ANALYZE के बिना लिए गए प्लान में भी लागत और अनुमान दिखते हैं, पर समय आधारित निष्कर्ष छोड़ दिए जाते हैं।
मेट्रिक्स कैसे निकाले जाते हैं
कुल समय = प्रति लूप वास्तविक समय × लूप; Gather नोड के नीचे इसे प्रोसेस की संख्या से भाग दिया जाता है ताकि समानांतर काम कई बार न गिना जाए। स्वयं का समय चाइल्ड नोड का कुल समय घटाता है और शून्य से नीचे नहीं जाता, इसलिए समानांतर प्लान, CTE, InitPlan और SubPlan में यह अनुमानित है। अनुमान गुणक प्रति लूप वास्तविक और अनुमानित पंक्तियों की तुलना करता है। EXPLAIN की बफ़र गिनती में चाइल्ड नोड शामिल होते हैं, इसलिए स्वयं के मान उन्हें घटाते हैं। ब्लॉक आकार डिफ़ॉल्ट 8 kB माना गया है।
निष्कर्ष और उनकी सीमाएँ
निष्कर्ष प्लान की संख्याओं पर आधारित अवलोकन हैं: बड़ी पंक्ति अनुमान चूक, बहुत सारे भीतरी निष्पादन वाले Nested Loop, अधिकांश पंक्तियाँ छोड़ने वाले सीक्वेंशियल स्कैन, डिस्क पर जाने वाले सॉर्ट और हैश, अस्थायी फ़ाइलें, shared buffers के बाहर से रीड और निष्पादन समय पर हावी नोड। सुझाव सावधान हैं और कभी कोई विशिष्ट इंडेक्स बनाने को नहीं कहते, क्योंकि केवल प्लान से क्वेरी की आवृत्ति, लेखन भार या डेटा वितरण नहीं दिखता।
गोपनीयता
प्लान में टेबल के नाम, स्कीमा के नाम, शर्तें और लिटरल मान दिख सकते हैं। प्लान आपके ब्राउज़र में पार्स होता है, बड़े प्लान Web Worker में, और इसे कभी अपलोड, लॉग या सहेजा नहीं जाता। केवल चुना गया दृश्य (ट्री, तालिका या मूल) याद रखा जाता है।
