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

इंडेक्स कुंजी कॉलम बनाम इंडेक्स शामिल कॉलम

इंडेक्स कुंजी कॉलम इंडेक्स के बी-पेड़ का हिस्सा हैं। शामिल कॉलम नहीं हैं।

दो इंडेक्स लें:

CREATE INDEX index1 ON table1 (col1, col2, col3)
CREATE INDEX index2 ON table1 (col1) INCLUDE (col2, col3)

index1 इस प्रकार की क्वेरी के लिए बेहतर अनुकूल है:

SELECT * FROM table1 WHERE col1 = x AND col2 = y AND col3 = z

जबकि index2 इस प्रकार की क्वेरी के लिए बेहतर अनुकूल है:

SELECT col2, col3 FROM table1 WHERE col1 = x

पहली क्वेरी में, index1 ब्याज की पंक्तियों को शीघ्रता से पहचानने के लिए एक तंत्र प्रदान करता है। क्वेरी (शायद) एक अनुक्रमणिका खोज के रूप में निष्पादित होगी, उसके बाद पूरी पंक्ति (पंक्तियों) को पुनर्प्राप्त करने के लिए बुकमार्क लुकअप के बाद।

दूसरी क्वेरी में, index2 एक कवरिंग इंडेक्स के रूप में कार्य करता है। SQL सर्वर को बेस टेबल को बिल्कुल भी हिट करने की ज़रूरत नहीं है, क्योंकि इंडेक्स क्वेरी को संतुष्ट करने के लिए आवश्यक सभी डेटा प्रदान करता है। index1 इस मामले में एक कवरिंग इंडेक्स के रूप में भी कार्य कर सकता है।

यदि आप एक कवरिंग इंडेक्स चाहते हैं, लेकिन बी-पेड़ में सभी कॉलम नहीं जोड़ना चाहते हैं क्योंकि आप उन पर खोज नहीं करते हैं, या नहीं कर सकते क्योंकि वे एक अनुमत डेटाटाइप (उदाहरण के लिए, एक्सएमएल) नहीं हैं, का उपयोग करें खंड शामिल करें।



  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) में SPACE () फ़ंक्शन कैसे काम करता है

  2. SQL सर्वर में मानक विचलन द्वारा आउटलेर्स को हटाना

  3. अस्थायी तालिका के साथ काम नहीं कर रहा इकाई की रूपरेखा

  4. खाली पंक्तियों के लिए भी सप्ताह के आधार पर संक्षेप करें

  5. SQL सर्वर भूगोल डेटा प्रकार की समझ कैसे बनाएं