पोस्टग्रेज़ लागत स्पष्ट करें

Postagreza Lagata Spasta Karem



पोस्टग्रेज़ एक शक्तिशाली और व्यापक रूप से उपयोग किया जाने वाला ओपन-सोर्स रिलेशनल डेटाबेस सिस्टम है जिसकी मजबूती, कार्यक्षमता और प्रदर्शन के लिए एक मजबूत प्रतिष्ठा है।

एक उपकरण जो पोस्टग्रेज को प्रदर्शन में मुख्य रूप से मजबूत बनाता है, वह इसका EXPLAIN कमांड है जो SQL क्वेरी की निष्पादन योजना पर विवरण प्रदान करता है।

व्याख्या आदेश क्या है?

EXPLAIN कमांड उस निष्पादन योजना को प्रदर्शित करता है जिसे PostgreSQL प्लानर किसी दिए गए SQL कथन के लिए उत्पन्न करता है।







इसमें प्रत्येक क्वेरी चरण को निष्पादित करने की अनुमानित लागत के बारे में जानकारी शामिल है। इन लागतों की जांच करके, हम समझ सकते हैं कि कोई क्वेरी धीमी क्यों चलती है और इसे कैसे अनुकूलित किया जाए।



PostgreSQL लागत स्पष्ट करें

किसी दिए गए प्रश्न के बारे में जानकारी प्राप्त करने के लिए हम मुख्य रूप से EXPLAIN कमांड का उपयोग करते हैं। कमांड क्वेरी के बारे में कुछ जानकारी आउटपुट करता है।



उदाहरण के लिए वह क्वेरी लें जो निम्नलिखित में दिखाई गई है:





एफ.शीर्षक, सी.नाम चुनें
फिल्म से एफ
f.film_id = fc.film_id पर फ़िल्म_श्रेणी fc से जुड़ें
fc.category_id = c.category_id पर श्रेणी c में शामिल हों;

यदि हम पिछले सरल जुड़ाव पर व्याख्या आदेश चलाते हैं:

स्पष्ट करें च.शीर्षक, सी.नाम चुनें
फिल्म से एफ
f.film_id = fc.film_id पर फ़िल्म_श्रेणी fc से जुड़ें
fc.category_id = c.category_id पर श्रेणी c में शामिल हों;

हमें निम्नलिखित में दिखाए अनुसार आउटपुट प्राप्त करना चाहिए:



आप देख सकते हैं कि प्रत्येक क्वेरी चरण के लिए, PostgreSQL उस क्वेरी की अनुमानित लागत लौटाता है।

  1. स्टार्टअप_कॉस्ट - यह पंक्तियों का आउटपुट शुरू करने से पहले ऑपरेशन को आरंभ करने की अनुमानित लागत दिखाता है।
  2. total_cost - सभी पंक्तियों को पुनः प्राप्त करने की कुल लागत।
  3. पंक्तियाँ - यह क्वेरी द्वारा लौटाई गई पंक्तियों की अनुमानित संख्या निर्धारित करती है।
  4. चौड़ाई - यह उन सभी पंक्तियों की बाइट्स की औसत संख्या निर्धारित करती है जो ऑपरेशन द्वारा लौटाई जाती हैं।

PostgreSQL में क्वेरी लागत को मनमानी इकाइयों में दर्शाया गया है जो सर्वर कॉन्फ़िगरेशन में सेट किए गए लागत मापदंडों द्वारा निर्धारित की जाती हैं।

इन मापदंडों की कुंजी seq_page_cost है जो एक डिस्क पेज लाने की लागत निर्धारित करती है जो कैश में नहीं है।

यदि आप pgAdmin पर हैं, तो आप व्याख्या आदेश के लिए अधिक पठनीय और अच्छी तरह से प्रस्तुत आरेख प्राप्त करने के लिए 'व्याख्या विश्लेषण' सुविधा का उपयोग कर सकते हैं। उदाहरण के लिए:

फिर आप आंकड़े और अनुमानित लागत देखने के लिए प्रत्येक चरण पर क्लिक कर सकते हैं।

लागत के आधार पर प्रश्नों का अनुकूलन

अपने प्रश्नों को अनुकूलित करते समय, यह समझना आवश्यक है कि कम लागत का मतलब आमतौर पर तेजी से निष्पादन होता है। इसलिए, आप कम लागत पर अपने प्रश्नों को संशोधित कर सकते हैं।
यहां विचार करने के लिए कुछ कारक दिए गए हैं:

तालिका अनुक्रमणिका का उपयोग करें - इंडेक्स एक डेटा संरचना को बनाए रखते हुए खोज-आधारित प्रश्नों की लागत को काफी कम कर देता है जो तेजी से लुकअप की अनुमति देता है।

फ़ंक्शंस और ऑपरेटर्स का बुद्धिमानी से उपयोग करें - फ़ंक्शंस और ऑपरेटरों के लिए लागत अनुमान हमेशा सटीक नहीं होता है, क्योंकि वास्तविक लागत विशिष्ट डेटा पर काफी हद तक निर्भर हो सकती है। इसलिए, फ़ंक्शंस और जटिल ऑपरेटरों के उपयोग को न्यूनतम तक सीमित करें।

निष्कर्ष

हमने PostgreSQL ANALYZE कमांड में लागत की अवधारणा का पता लगाया। हमने चर्चा की कि कमांड आउटपुट का क्या मतलब है और किसी दिए गए क्वेरी को चलाने के सबसे कुशल तरीके का विश्लेषण करने के लिए लागत आउटपुट का उपयोग कैसे करें।