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

Oracle 10g - ऑप्टिमाइज़ करें जहाँ NULL नहीं है

अनुकूलक सोचता है कि पूर्ण तालिका स्कैन बेहतर होगा।

अगर कुछ ही NULL हैं तो पंक्तियाँ, अनुकूलक सही है।

यदि आप पूरी तरह से आश्वस्त हैं कि अनुक्रमणिका पहुँच तेज़ होगी (अर्थात, आपके पास 75% से अधिक है col1 IS NULL वाली पंक्तियाँ ), फिर अपनी क्वेरी का संकेत दें:

SELECT  /*+ INDEX (t index_name_on_col1) */
        *
FROM    mytable t
WHERE   col1 IS NOT NULL

क्यों 75% ?

क्योंकि INDEX SCAN का उपयोग कर रहे हैं इंडेक्स द्वारा कवर नहीं किए गए मानों को पुनः प्राप्त करने के लिए ROWID . पर एक छिपे हुए जुड़ाव का अर्थ है , जिसकी कीमत लगभग 4 . है टेबल स्कैन जितना गुना।

यदि अनुक्रमणिका श्रेणी में 25% . से अधिक शामिल है पंक्तियों में, तालिका स्कैन आमतौर पर तेज़ होता है।

जैसा कि Tony Andrews ने बताया है , क्लस्टरिंग कारक इस मान को मापने के लिए अधिक सटीक तरीका है, लेकिन 25% अभी भी अंगूठे का एक अच्छा नियम है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle DB से कनेक्ट होने पर नेटवर्क एडेप्टर कनेक्शन स्थापित नहीं कर सका

  2. ORA-00918:चयन में अस्पष्ट रूप से परिभाषित स्तंभ *

  3. Oracle SQL डेवलपर में प्रक्रिया कैसे बनाएं?

  4. Oracle SQL डेवलपर में csv को क्वेरी परिणाम कैसे निर्यात करें?

  5. ADODFCMP उपयोगिता