Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

आपके SQL सर्वर जटिलता को कम करने के लिए युक्तियाँ

जटिल SQL क्वेरी डेटाबेस खोजों को बहुत विशिष्ट और लचीला बनाने के लिए उत्कृष्ट हैं, लेकिन उन्हें समझना कठिन और डीबग करना लगभग असंभव भी हो सकता है—और आप उनका पुन:उपयोग करना भी भूल सकते हैं।

जब क्वेरी आपके मानक SELECT और WHERE कमांड से आगे निकल जाती हैं, तो आप यह भी पा सकते हैं कि SQL सर्वर का प्रदर्शन प्रभावित होने लगता है क्योंकि क्वेरी ऑप्टिमाइज़र को लंबी, जटिल क्वेरी को संसाधित करने में परेशानी होती है।

यदि आप देखते हैं कि आपकी SQL क्वेरीज़ अत्यधिक संख्या में जटिल जॉइन और सब-क्वेरी का उपयोग करती हैं, WHERE क्लॉज़ में नेस्ट क्वेरीज़, और बहुत सारे AND और OR क्लॉज़ पर निर्भर हैं, तो शायद यह एक अच्छा समय है कि आप पीछे हटें और तरीकों की तलाश करें। कुछ जटिलता को कम करें।

SQL सर्वर क्वेरी जटिलता को कम करने के लिए युक्तियाँ

जैसा कि हमने ऊपर बताया, SQL सर्वर क्वेरी ऑप्टिमाइज़र जटिल SQL क्वेरीज़ को पसंद नहीं करते हैं। यहां आपके प्रश्नों को कम जटिल बनाने के पांच तरीके दिए गए हैं ताकि उन्हें बेहतर प्रदर्शन के लिए अनुकूलित किया जा सके।

<एच3>1. जब संभव हो तो हटा दें या क्लाज करें

प्रश्नों को कम जटिल बनाने का सबसे आसान तरीका है कि जब भी संभव हो OR खंड को हटा दिया जाए। क्योंकि OR समावेशी है, SQL सर्वर को क्लॉज के प्रत्येक घटक को अलग से संसाधित करना पड़ता है, जो वास्तव में संचालन को धीमा कर देता है।

जब OR को हटाना संभव न हो, तो अगला सबसे अच्छा विकल्प लंबी, जटिल क्वेरी को छोटे प्रश्नों में तोड़ना है। यह थोड़ा उल्टा लगता है कि अधिक प्रश्नों को संसाधित करना एक को संसाधित करने की तुलना में तेज़ है, लेकिन जब OR की बात आती है, तो आप कई प्रश्नों के साथ जाने से बेहतर हैं।

<एच3>2. फ़ाइन-ट्यून स्ट्रिंग खोजें

SQL सर्वर बहुत सी चीज़ें अच्छी तरह से करता है, लेकिन फ़ज़ी स्ट्रिंग खोज उनमें से एक नहीं है। वाइल्डकार्ड स्ट्रिंग खोज, विशेष रूप से बड़ी तालिकाओं पर, अक्षम हैं और प्रदर्शन के लिए खराब हैं।

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

  • वाइल्डकार्ड खोज के बजाय अग्रणी स्ट्रिंग खोज का उपयोग करें (यानी, "%For%" को "For%" में बदलें)
  • स्ट्रिंग खोज चलाने से पहले डेटा के आकार को कम करने के लिए क्वेरी में दिनांक या समय जैसे फ़िल्टर लागू करें
  • अनुक्रमणिका उत्पन्न करने के लिए पूर्ण-पाठ अनुक्रमण लागू करें जो पाठ स्तंभों पर लचीली स्ट्रिंग खोज की अनुमति देता है
<एच3>3. बड़े लेखन कार्यों पर ध्यान दें

बड़े लेखन संचालन विवाद का कारण बनते हैं और बहुत सारी लॉग फाइलें उत्पन्न करते हैं। अनियंत्रित छोड़ दिया गया, बड़े लेखन संचालन उपयोगकर्ताओं से संसाधनों को अवरुद्ध कर सकते हैं और विलंबता के मुद्दों के साथ-साथ लेनदेन लॉग या भौतिक भंडारण भी भर सकते हैं।

क्योंकि आप हमेशा बड़े लेखन कार्यों से बच नहीं सकते हैं, इस बात से अवगत रहें कि आप उन्हें कब चलाते हैं (सर्वर जितना कम व्यस्त होगा, उतना ही बेहतर) या विवाद के जोखिम को कम करने के लिए प्रति ऑपरेशन संशोधित पंक्तियों की संख्या को कम करें।

<एच3>4. अनुक्रमणिका साफ़ करें

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

SQL सर्वर में कई उपकरण हैं जो आपको बताते हैं कि अनुपलब्ध अनुक्रमणिकाएँ क्वेरी प्रदर्शन को प्रभावित कर रही हैं। लेकिन इससे पहले कि आप कूदें और इंडेक्स जोड़ना शुरू करें, आपको यह निर्धारित करने की ज़रूरत है कि अतिरिक्त इंडेक्स क्वेरी को प्रयास के लायक बनाने के लिए पर्याप्त सुधार करेगा या नहीं। उदाहरण के लिए, यदि क्वेरी दिन में 1 मिलियन बार चलती है और सूचकांक इसे 25 प्रतिशत तक सुधारता है, तो शायद यह इसके लायक है। यदि क्वेरी का शायद ही कभी उपयोग किया जाता है, तो इसका कोई मतलब नहीं हो सकता है।

इंडेक्स जोड़ना शुरू करने से पहले विचार करने वाली कुछ अन्य चीजें हैं कि क्या मौजूदा इंडेक्स को इस उपयोग के मामले को एक नया जोड़ने के बिना कवर किया जा सकता है और क्या यह इंडेक्स पहले से मौजूद है लेकिन ऑप्टिमाइज़र किसी कारण से इसे अनदेखा कर रहा है।

अन्य तरीकों से अनुक्रमणिका क्वेरी के प्रदर्शन को प्रभावित कर सकती हैं या कम-अनुक्रमण तालिकाएँ और तालिकाएँ जिनमें संकुल अनुक्रमणिका या प्राथमिक कुंजी का अभाव है। इन मुद्दों को हल करने से जटिल SQL क्वेरी प्रदर्शन में मदद मिलेगी।

5. टेबल काउंट डाउन रखें

हर बार जब आप किसी क्वेरी में कोई तालिका जोड़ते हैं, तो क्वेरी अधिक जटिल हो जाती है। अत्यधिक तालिकाओं के परिणामस्वरूप अक्सर खराब निष्पादन योजनाएं होती हैं क्योंकि क्वेरी अनुकूलक कुशलता से काम नहीं कर सकता है।

यदि आप देखते हैं कि कोई जटिल क्वेरी खराब प्रदर्शन कर रही है और उसमें बहुत सी तालिकाएँ हैं, तो यह उन समयों में से एक हो सकता है जब क्वेरी को छोटे प्रश्नों में विभाजित करना सबसे अच्छा विकल्प है क्योंकि यह अनुकूलक पर कुछ बोझ को कम करेगा।

प्रदर्शन ट्यूनिंग उपकरण SQL सर्वर जटिलता को कम करने में मदद कर सकते हैं

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

प्रदर्शन ट्यूनिंग समाधानों पर शोध करते समय देखने योग्य कुछ क्षमताएं नीचे दी गई हैं।

SQL सर्वर निष्पादन योजना विश्लेषण

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

SQL सर्वर एक्ज़ीक्यूशन प्लान विज़ुअलाइज़ेशन

ट्यूनिंग टूल को निष्पादन योजना को ऐसे तरीके से प्रस्तुत करना चाहिए जो समझने में आसान हो और निष्पादन को धीमा करने वाले कार्यों का पता लगाने में आपकी सहायता करता हो।

स्वचालित SQL अनुकूलन

ट्यूनिंग टूल को आपके SQL का विश्लेषण करना चाहिए, फिर इसे स्वचालित रूप से तब तक फिर से लिखना चाहिए जब तक कि यह अधिकतम निष्पादन समय सुधार को हिट न कर दे।

अनुकूलित और मूल SQL कथनों की तुलना

ट्यूनिंग टूल को SQL कथन में परिवर्तनों को हाइलाइट करना चाहिए ताकि आप परिवर्तनों को लागू करने से पहले मूल और अनुकूलित संस्करणों की तुलना कर सकें।

SQL सर्वर निष्पादन योजनाओं की तुलना

ट्यूनिंग टूल को मूल और अनुकूलित निष्पादन योजनाओं की तुलना प्रदान करनी चाहिए ताकि आप जान सकें कि संस्करणों के बीच क्या बदल गया है।

सांख्यिकीय प्रमाण

आपके ट्यूनिंग टूल को डेटा प्रदान करना चाहिए जो दिखाता है कि क्यों अनुकूलित SQL मूल SQL कथन की तुलना में तेज़ी से निष्पादित होता है।

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर का उपयोग करके वर्तमान तिथि से 30 दिन कैसे घटाएं?

  2. ISJSON () SQL सर्वर में उदाहरण (T-SQL)

  3. SQL सर्वर JSON_Modify, सभी को कैसे अपडेट करें?

  4. SQL सर्वर, भ्रामक XLOCK और अनुकूलन

  5. SQL सर्वर (T-SQL) में किसी तालिका के भीतर एक विशिष्ट विभाजन को संपीड़ित करें