क्वेरी ऑप्टिमाइज़र एक महत्वपूर्ण डेटाबेस प्रबंधन प्रणाली (डीबीएमएस) घटक है जो संरचित क्वेरी भाषा (एसक्यूएल) प्रश्नों का विश्लेषण करता है और कुशल निष्पादन तंत्र निर्धारित करता है। एक क्वेरी ऑप्टिमाइज़र प्रत्येक क्वेरी के लिए एक या अधिक क्वेरी प्लान तैयार करता है, जिनमें से प्रत्येक क्वेरी को चलाने के लिए उपयोग किया जाने वाला एक तंत्र हो सकता है। सबसे कुशल क्वेरी योजना का चयन किया जाता है और क्वेरी को चलाने के लिए उसका उपयोग किया जाता है।
डेटाबेस उपयोगकर्ता आमतौर पर क्वेरी ऑप्टिमाइज़र के साथ इंटरैक्ट नहीं करते हैं, जो पृष्ठभूमि में काम करता है।
SQL क्वेरीज़ सरल या जटिल कथन हो सकती हैं। प्रत्येक SQL कथन के लिए डिस्क रीड और सर्वर मेमोरी जैसे मूल्यवान संसाधनों के न्यूनतम उपयोग की आवश्यकता होती है। क्वेरी ऑप्टिमाइज़र इसे सुनिश्चित करता है, साथ ही प्रत्येक SQL क्वेरी का त्वरित निष्पादन भी सुनिश्चित करता है। उदाहरण के लिए, एक क्वेरी ऑप्टिमाइज़र संसाधन लागत के आधार पर क्वेरी योजनाओं की एक श्रृंखला उत्पन्न कर सकता है। एक क्वेरी योजना में अपने डेटा के सबसेट को पुनः प्राप्त करने के लिए तालिका को पढ़ना शामिल हो सकता है, जबकि दूसरे में त्वरित डेटा पढ़ने के लिए तालिका अनुक्रमणिका का उपयोग करना शामिल हो सकता है। इन्हें लागत-आधारित अनुकूलक के रूप में जाना जाता है।
एक क्वेरी ऑप्टिमाइज़र पर्यावरणीय परिस्थितियों के आधार पर एक ही क्वेरी के लिए अलग-अलग क्वेरी योजनाओं का चयन कर सकता है। उदाहरण के लिए, एक उपयोगकर्ता एक क्वेरी चलाता है जो तालिका के लगभग आधे डेटा का चयन करता है। जब सर्वर पर एक साथ कई कनेक्शनों का भारी काम होता है तो उपयोगकर्ता क्वेरी चलाता है। इस परिदृश्य में, क्वेरी ऑप्टिमाइज़र एक क्वेरी योजना का उपयोग करने का निर्णय ले सकता है जो सीमित संसाधनों के आधार पर क्वेरी को संतुष्ट करने के लिए बनाए गए टेबल इंडेक्स पर कॉल करता है। यह क्वेरी द्वारा न्यूनतम सर्वर ड्रेन सुनिश्चित करता है। अधिक संसाधनों के साथ उसी क्वेरी को किसी अन्य समय चलाकर, क्वेरी ऑप्टिमाइज़र यह निर्धारित कर सकता है कि संसाधन सीमा कोई समस्या नहीं है। इस उदाहरण में, टेबल इंडेक्स का उपयोग नहीं किया जाएगा, और क्वेरी ऑप्टिमाइज़र सर्वर मेमोरी में पूर्ण टेबल लोड करने की अनुमति देगा।
0 Comments