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

SELECT COUNT(*) की तुलना में SELECT COUNT(कॉलम) तेज/धीमा है?

मैंने कुछ कोशिश की SELECT COUNT(*) FROM MyTable बनाम SELECT COUNT(SomeColumn) FROM MyTable तालिकाओं के विभिन्न आकारों के साथ, और जहां SomeColumn एक बार क्लस्टरिंग कुंजी कॉलम होता है, एक बार यह गैर-क्लस्टर इंडेक्स में होता है, और एक बार यह बिना किसी इंडेक्स में होता है।

सभी मामलों में, सभी आकार की तालिकाओं (300'000 पंक्तियों से 170 मिलियन पंक्तियों तक) के साथ, मुझे कभी भी कोई अंतर दिखाई नहीं देता है गति या निष्पादन योजना के संदर्भ में - सभी मामलों में, COUNT क्लस्टर्ड इंडेक्स स्कैन -> यानी मूल रूप से पूरी तालिका को स्कैन करके नियंत्रित किया जाता है। यदि कोई गैर-संकुल अनुक्रमणिका शामिल है, तो स्कैन उस अनुक्रमणिका पर है - यहां तक ​​कि SELECT COUNT(*) करते समय भी !

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

परीक्षण SQL Server 2008 R2 डेवलपर संस्करण पर किए गए थे



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इकाई फ्रेमवर्क 4 कोड पहले - डीबी ड्रॉप/बनाएं रोकें

  2. SQL सर्वर (T-SQL) में सर्वर नाम वापस करने के 2 तरीके

  3. SQL सर्वर में किसी निर्दिष्ट स्थान पर सूची आइटम कैसे खोजें

  4. SQL सर्वर में 'पिवट' का उपयोग करके पंक्तियों को कॉलम में बदलें

  5. मैं SQL Server 2008 R2 में CONCAT फ़ंक्शन का उपयोग कैसे करूं?