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

SQL सर्वर किस कार्डिनैलिटी पर एक इंडेक्स स्कैन (बनाम तलाश) पर स्विच करता है

SQL सर्वर के संदर्भ में, इसे टिपिंग पॉइंट के रूप में संदर्भित किया गया है, जिसमें से Kimberley का ब्लॉग पोस्ट इस पर एक अच्छा पढ़ा गया है। http://www.sqlskills.com/BLOGS/KIMBERLY /category/The-Tipping-Point.aspx

टिपिंग पॉइंट तालिका के भीतर पृष्ठों की कुल संख्या का 25% -33% का दिशानिर्देश है, जिसे पंक्तियों के रूप में व्यक्त किया जाता है, उदा। 10k डेटा पेज 2500-3333 पंक्तियों का टिपिंग पॉइंट देंगे। दिशानिर्देशों के अनुसार यह बहुत अच्छा है, और जितना अच्छा आपको मिलेगा - याद रखें कि क्वेरी प्लान इंजन एक ब्लैक बॉक्स है, और जबकि यह आपको एक क्वेरी प्लान देगा, यह केवल वही कहता है जो उसने तय किया, क्यों नहीं।

एक कवरिंग इंडेक्स को टिपने के मामले में, यह वास्तव में बहुत आसान नहीं है, यहां तक ​​​​कि 100% डेटा चुने जाने के बावजूद एक कवरिंग इंडेक्स अभी भी अधिकांश मामलों में स्कैन की तलाश करेगा।

यह समझ में आता है, यदि आप मानते हैं कि लागत अनुकूलक इंडेक्स पेज पदानुक्रम के लिए कोई वास्तविक लागत निर्दिष्ट नहीं करता है, तो केवल इंडेक्स के लीफ पेजों तक पहुंच की लागत होती है। उस समय, किसी कवरिंग इंडेक्स को स्कैन करने या 100% प्राप्त करने की लागत समान होती है।

मैंने अपने स्वयं के प्रयोग से पाया (http://sqlfascination.com/2009/11/07/can-a-covering-nc-index-be-tipped ) बीच क्लॉज का उपयोग करने से यह स्कैन हो जाएगा, लेकिन अन्य जहां क्लॉज नहीं होंगे - जो मैं बता सकता था वह पूरी तरह से क्वेरी इंजन के माध्यम से रूट तक था।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django:मुझे एक [संबंध auth_group मौजूद नहीं है] सिंकडीबी के बाद त्रुटि मिलती है

  2. sqlalchemy में संघर्ष पर Postgresql

  3. Django समय को UTC में अनुवाद करना बंद करें

  4. PostgreSQL में क्लस्टर और नॉन क्लस्टर इंडेक्स

  5. SQL के साथ एक पोस्टग्रेज तालिका को पूरी तरह से कॉपी करना