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

Oracle में सबस्ट्र या LIKE तेज है?

अधिकतम प्रदर्शन को लक्ष्य मानते हुए, मैं आदर्श रूप से SUBSTR(my_field,1,6) चुनूंगा और क्वेरी का समर्थन करने के लिए फ़ंक्शन-आधारित अनुक्रमणिका बनाएं।

CREATE INDEX my_substr_idx
    ON my_table( substr( my_field,1,6 ) );

जैसा कि अन्य बताते हैं, SUBSTR(my_field,1,6) MY_FIELD . पर नियमित अनुक्रमणिका का उपयोग करने में सक्षम नहीं होगा . LIKE संस्करण इंडेक्स का उपयोग कर सकता है, लेकिन उस मामले में ऑप्टिमाइज़र का कार्डिनैलिटी अनुमान आम तौर पर खराब होता है, इसलिए यह या तो इंडेक्स का उपयोग नहीं करने की काफी संभावना है जब यह मददगार होगा या एक इंडेक्स का उपयोग करने के लिए जब टेबल स्कैन बेहतर होगा। वास्तविक एक्सप्रेशन को इंडेक्स करने से ऑप्टिमाइज़र को काम करने के लिए कहीं अधिक जानकारी मिलेगी, इसलिए यह इंडेक्स को सही ढंग से चुनने की अधिक संभावना है। मुझसे ज्यादा होशियार कोई व्यक्ति 11g में वर्चुअल कॉलम पर आँकड़ों का उपयोग करने का तरीका सुझा सकता है ताकि ऑप्टिमाइज़र को LIKE क्वेरी के लिए बेहतर जानकारी मिल सके।

यदि 6 एक चर है (यानी आप कभी-कभी पहले 6 वर्णों को खोजना चाहते हैं और कभी-कभी एक अलग संख्या खोजना चाहते हैं), तो संभवतः आप उस क्वेरी का समर्थन करने के लिए फ़ंक्शन-आधारित अनुक्रमणिका के साथ नहीं आ पाएंगे। उस स्थिति में, आप शायद LIKE फॉर्मूलेशन के साथ ऑप्टिमाइज़र के निर्णयों की अनिश्चितताओं से बेहतर हैं।



  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 डाटाबेस क्लाइंट स्टेप बाय स्टेप स्थापित करें

  2. जावा में Oracle नेस्टेड तालिका में सम्मिलित करना

  3. हैश जॉइन और मर्ज जॉइन (Oracle RDBMS) में क्या अंतर है?

  4. SID के बजाय सेवा नाम का उपयोग करके Oracle से कैसे जुड़ें?

  5. संबंधपरक डेटाबेस में प्रदर्शन समस्या का वर्णन कैसे करें?