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

SQL सर्वर स्टेटमेंट निष्पादन का क्रम

यह SQL सर्वर की एक ज्ञात "सुविधा" है। यह कभी न मानें कि WHERE क्लॉज SELECT क्लॉज से पहले निष्पादित होता है।

देखें:SQL सर्वर चाहिए अतार्किक त्रुटियां न उठाएं

कभी-कभी ऐसा करने के लिए वास्तव में अच्छे कारण होते हैं। दो तालिकाओं में शामिल होने पर विचार करें, जिसमें A, B से बहुत छोटा है।

select CAST(A.col1 as int), A.col2, B.col3
from A join B ...
where ... isnumeric(A.col1) = 1

यदि आप सही या गलत जेनरेट की गई क्वेरी योजना का निरीक्षण करते हैं, तो SQL सर्वर A से डेटा को B से जुड़ने के लिए प्रमुख पंक्तियों के रूप में स्ट्रीम करेगा। ऐसा करते समय, वह जानता है कि उसे केवल col2 खींचने की आवश्यकता है और function on col1 . यह col1 . ला सकता है फ़ंक्शन को बाद में चलाने के लिए, या CAST जैसी तुच्छ चीज़ के लिए, 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. VS2010 डेटाबेस प्रोजेक्ट परिनियोजन - SqlDeployTask कार्य अप्रत्याशित रूप से विफल हो गया, NullReferenceException

  2. यादृच्छिक SQL सर्वर 2008 समय परीक्षण डेटा उत्पन्न करें

  3. SQL सर्वर डेटाबेस में सभी अशक्त स्तंभों की सूची बनाएं

  4. SQL सर्वर त्रुटि देता है लॉगिन उपयोगकर्ता 'NT AUTHORITY\ANONYMOUS LOGON' के लिए विफल रहा। विंडोज़ एप्लिकेशन में

  5. SQL सर्वर nvarchar स्ट्रिंग्स के अंदर खोज करते समय उच्च CPU का उपयोग करता है