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

SQL सर्वर पर संग्रहीत कार्यविधि पुनर्संकलन के कारण कौन से कारक हो सकते हैं?

संग्रहीत कार्यविधि का पुनर्संकलन सुनिश्चित करने के कुछ तरीके हैं:

  • WITH RECOMPILE का उपयोग करना ,
  • संग्रहीत कार्यविधि को गतिशील बनाना (सोचें exec() )
  • sp_recompile के साथ पुन:संकलन के लिए खरीद को चिह्नित करना .
  • उस स्कीमा को बदलना जिस पर कैश्ड क्वेरी योजना निर्भर करती है
  • कॉलिंग DBCC FREEPROCCACHE
  • क्वेरी स्तर पर एक खरीद के भीतर एक व्यक्तिगत बयान RECOMPILE क्वेरी संकेत (एसक्यूएल 2008) के साथ पुन:संकलित किया जा सकता है।

पुनर्संकलन में कारक

ऊपर सूचीबद्ध कठिन-कारकों के अलावा, संग्रहीत कार्यविधि पुनर्संकलन का क्या कारण है? खैर, बहुत सी बातें। इनमें से कुछ ऊपर दी गई सूची के साथ जुड़े हुए हैं, लेकिन मैं उन्हें फिर से प्रस्तुत करना चाहता हूं क्योंकि यह स्पष्ट नहीं हो सकता है।

  • बहुत सारा डेटा डालना या हटाना (इंडेक्स और टेबल में डेटा घनत्व अक्सर क्वेरी योजनाओं को नियंत्रित करता है)
  • पुनर्निर्माण अनुक्रमणिका (अंतर्निहित वस्तुओं में परिवर्तन)
  • अस्थायी टेबल बनाना/छोड़ना (फिर से, अंतर्निहित डीएमएल परिवर्तन)।
  • क्वेरी प्लान पुराना हो गया है (सोचें कि हाल ही में उपयोग नहीं किया गया है और sql मेमोरी उपयोग को साफ करना चाहता है)

यह किसी भी तरह से एक विस्तृत सूची नहीं है। क्वेरी ऑप्टिमाइज़र विकसित होता है और आश्चर्य होता है कि आप कितने समय से SQL सर्वर का उपयोग कर रहे हैं। लेकिन यहां कुछ संसाधन हैं जो उपयोगी हो सकते हैं:

लेकिन प्रतीक्षा करें - और भी बहुत कुछ है !

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

तो आप इसे कब पुन:संकलित करना चाहेंगे? आइए एक खरीद का एक उदाहरण देखें जो अंतिम नाम से खोज करता है। संग्रहीत कार्यविधियाँ 'पैरामीटर सूँघने करती हैं ' जो एक आशीर्वाद है (यदि यह आपके लिए काम करता है) और एक अभिशाप (यदि यह आपके खिलाफ काम करता है)। Zebr% . पर सबसे पहले किसी की खोज को पास करें ज़ेरब्रोस्की के लिए। अंतिम नाम सूचकांक को पता चलता है कि यह बहुत विशिष्ट है और वापस आ जाएगा, मान लीजिए, एक लाख से 3 पंक्तियाँ - इसलिए एक निष्पादन योजना बनाई गई है। कम पंक्ति परिणाम के लिए संकलित खरीद के साथ, अगली खोज S% . के लिए है . ठीक है, S आपका सबसे सामान्य नाम है और 1 मिलियन में से 93,543 पंक्तियों से मेल खाता है।



  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 का उपयोग करके लगातार दिनांक सीमाओं का पता लगाएं

  2. टी-एसक्यूएल में बिंदुओं से भूगोल पॉलीलाइन बनाएं

  3. SQL सर्वर में डेटाटाइम के रूप में डिलीमीटर के बिना डेटाटाइम स्ट्रिंग को कैसे परिवर्तित करें?

  4. SQL सर्वर में VALUES क्लॉज

  5. कुल योग चलाने के लिए सर्वोत्तम दृष्टिकोण - SQL सर्वर 2012 के लिए अद्यतन