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

SQL क्वेरी को व्यापक रूप से प्रभावित करने वाले प्रदर्शन को सरल बनाने के लिए फ़ंक्शन का उपयोग करना होगा?

आम तौर पर, चुनना स्केलर फ़ंक्शन के परिणाम से अधिक नुकसान नहीं होगा, लेकिन फ़िल्टरिंग इसके द्वारा आसानी से सैकड़ों सेकंड खर्च हो सकते हैं (जरूरी नहीं कि हालांकि)।

यदि आपको स्केलर फ़ंक्शन परिणाम द्वारा फ़िल्टर करने की आवश्यकता है (WHERE col = dbo.scalar_function() ), यह अक्सर इसके बजाय एक इनलाइन तालिका-मूल्यवान फ़ंक्शन बनाने में मदद करता है। यह परिणाम तालिका की एकमात्र पंक्ति के रूप में अपना मान लौटाएगा। फिर आप inner join करेंगे फ़ंक्शन परिणाम के साथ, लौटाए गए मान द्वारा प्रभावी ढंग से फ़िल्टर करना। यह काम करता है क्योंकि 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 2005 में UTC और स्थानीय (यानी PST) समय के बीच प्रभावी रूप से दिनांक परिवर्तित करना

  2. टी-एसक्यूएल - क्या दो तालिकाओं में डेटा की तुलना करने का कोई (मुक्त) तरीका है?

  3. SQL सर्वर पर उपश्रेणियों पर योग

  4. यह क्वेरी उचित अनुक्रमणिका का उपयोग क्यों नहीं करती है?

  5. टी-एसक्यूएल में एक स्ट्रिंग को कैसे विभाजित करें?