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

टेबल वैल्यूड फंक्शन मेरी क्वेरी के प्रदर्शन को खत्म कर रहा है

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

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

इसके बारे में MSDN सीएसएस एसक्यूएल सर्वर इंजीनियर्स द्वारा (उद्धरण):



  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 सर्वर डेटाबेस में संग्रहीत कार्यविधियाँ और कार्य लौटाएँ:रूटीन (T-SQL उदाहरण)

  2. कैसे ठीक करें "निष्पादन कथन विफल हुआ क्योंकि इसके परिणाम सेट क्लॉज के साथ 1 परिणाम सेट निर्दिष्ट है ..." SQL सर्वर में

  3. लिनक्स पर SQL सर्वर कैसे स्थापित करें

  4. क्या SQL सर्वर के बिना .mdf डेटाबेस को एक्सेस करना संभव है?

  5. एक सूची प्राप्त करने के लिए Sql कुल कार्य