हाल ही में Idera के लिए किए गए वेबकास्ट के दौरान, मुझे बहुत सी नई तरकीबें और टिप्स दिखाने का आनंद मिला। सबसे सराहनीय सुझावों में से एक यह था कि 'Last_Query_Cost' की तरह SHOW STATUS कमांड का उपयोग करके MySQL में अंतिम क्वेरी लागत कैसे प्राप्त करें। आइए आज हम इसके बारे में जानें।
यदि आप SQL सर्वर का उपयोग कर रहे हैं, तो ग्राफिकल निष्पादन योजना, XL निष्पादन योजना या प्लान कैश DMV का उपयोग करके क्वेरी की लागत प्राप्त करना बहुत आसान है। हालाँकि, यदि आप MySQL का उपयोग कर रहे हैं, तो अंतिम क्वेरी लागत का पता लगाना बहुत मुश्किल है। मैंने अक्सर अपनी व्यापक डेटाबेस प्रदर्शन स्वास्थ्य जांच . के दौरान देखा है कि डीबीए अपने MySQL प्रश्नों को ट्यून करना चाहते हैं लेकिन उन्हें नहीं पता कि उनके प्रश्नों के प्रदर्शन को कैसे मापें।
यदि आप MySQL, या MariaDB का उपयोग कर रहे हैं, तो आप निम्न कमांड चलाकर हमेशा अपनी क्वेरी के प्रदर्शन को लागत के संदर्भ में माप सकते हैं।
स्थिति दिखाएं
SHOW STATUS LIKE 'Last_Query_Cost';
आदेश के लिए आधिकारिक दस्तावेज यहां दिया गया है। अंतिम संकलित क्वेरी की कुल लागत जैसा कि क्वेरी अनुकूलक द्वारा परिकलित किया गया है। यह एक ही क्वेरी के लिए विभिन्न क्वेरी योजनाओं की लागत की तुलना करने के लिए उपयोगी है। 0 के डिफ़ॉल्ट मान का अर्थ है कि अभी तक कोई क्वेरी संकलित नहीं की गई है। डिफ़ॉल्ट मान 0 है। Last_query_cost में सत्र का दायरा है।
आइए हम इसका एक सरल उदाहरण देखें कि यह MySQL के लिए सकीला नमूना डेटाबेस की मदद से कैसे काम करता है। ।
USE sakila; SELECT * FROM film f INNER JOIN film_actor fa ON f.film_id = fa.film_id INNER JOIN film_category fc ON fc.film_id = fa.film_id WHERE f.film_id = 10; SHOW STATUS LIKE 'Last_Query_Cost';
उपरोक्त क्वेरी को चलाने पर आपको जो परिणाम मिलता है वह यहां दिया गया है:
स्थिति की सहायता से, हम जान सकते हैं कि क्वेरी चलाने में कितनी लागत शामिल थी। अगर आपके पास कोई अन्य सुझाव है तो मुझे बताएं। इसके अतिरिक्त, यदि आप सुधारात्मक कार्रवाई और मुद्दों के समाधान के लिए रीयल-टाइम में मॉनिटर करना चाहते हैं, तो आपको MySQL और MariaDB के लिए SQL डायग्नोस्टिक मैनेजर पर विचार करना चाहिए। ।