2011-11-26 14 views
5

के बीच प्रदर्शन अंतर यदि मैं एकाधिक कॉलम पर अद्वितीय इंडेक्स के साथ अपने डेटाबेस (ओरेकल) से पूछता हूं, तो क्या कोई प्रदर्शन अंतर होगा यदि मैं VARCHAR2 से NUMBER तक कॉलम में से किसी एक को बदलता हूं?
यदि वहां है, तो यह महत्वपूर्ण है?VARCHAR2 से NUMBER

(यह varchar2 क्योंकि मैं शुरुआत में की जरूरत है '0' लेकिन मैं अपने अनुप्रयोग में प्रस्तुति परत में बदल सकते हैं)

+0

आपको 'महत्वपूर्ण' परिभाषित करने की आवश्यकता है। NUMBERS तेज हो जाएगा। – Randy

+0

VARCHAR2 और NUMBER के बीच का अंतर इतना महत्वपूर्ण नहीं है (वे समान रूप से संग्रहीत हैं)। मल्टी-कॉलम अद्वितीय इंडेक्स में कॉलम का ऑर्डर बहुत मायने रख सकता है। – ibre5041

उत्तर

3

मुझसे अधिक जानकार लोग मुझे बताते हैं कि ओरेकल में संख्या और वर्कर 2 के बीच प्रदर्शन अंतर पूरी तरह से आपके डेटा पर निर्भर करता है, क्योंकि आंतरिक रूप से उनके पास समान समान प्रतिनिधित्व होते हैं।

https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2669498700346402356

लेकिन यह भी की "आंतरिक संख्यात्मक स्वरूप हैं" अनुभाग देखें:

http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT012

, उदाहरण के लिए, अपने varchar डेटा वास्तव में एकल वर्ण था (जैसे निम्नलिखित देखें 'वाई', 'एन' के रूप में) तो आप शायद संख्याओं की तुलना में वर्चर्स के साथ बेहतर हो जाएंगे। यदि आपके पास 100 से कम कोड हैं लेकिन आपकी स्ट्रिंग समकक्ष 8 वर्ण लंबी हैं तो आप शायद वर्चर्स की तुलना में संख्यात्मक से बेहतर हो जाएंगे।

+0

धन्यवाद, हालांकि पार्टी के देर से, टॉम का लिंक इसके लायक था ... :) – gdoron

4

हाँ, यह संख्या का उपयोग करने के जल्दी होना चाहिए। चाहे यह आपको महत्वपूर्ण वृद्धि देता है, यह आपके डेटा, अनुक्रमणिका और प्रश्नों पर निर्भर करेगा। यदि आपको प्रदर्शन समस्याएं आ रही हैं, तो यह जादू ठीक होने की संभावना नहीं है।

+0

क्या यह जानने के लिए कोई उपाय है कि वहां कितना प्रभाव होगा? चलो पर्सेंट में कहते हैं। मेरे पास प्रदर्शन की समस्या नहीं है, लेकिन मुझे कुछ दिन नहीं चाहिए .. – gdoron

+0

और यदि वह कॉलम अद्वितीय इंडेक्स में से एक नहीं होगा और मैं उसके द्वारा फ़िल्टर नहीं करूंगा, तो केवल उसका मूल्य प्राप्त करें, क्या यह होगा अभी भी प्रदर्शन में कमी? – gdoron

+5

@gdoron आप नंबरों और पाठ के रूप में संख्याओं को संग्रहित करने से लगभग हमेशा बेहतर होते हैं। NUMBER प्रकार का उपयोग करना अधिक कुशल होना चाहिए (अंतरिक्ष और प्रदर्शन दोनों के संदर्भ में), और आप कुछ संभावित समस्याओं को साइड-स्टेप करते हैं (उदाहरण के लिए प्रारंभिक चेतावनी यदि आप गलती से उस कॉलम में किसी संख्या को संग्रहीत करने का प्रयास करते हैं)। यदि आपके पास केवल थोड़ी सी मात्रा है, तो संभवतः आप इस बदलाव को करके प्रदर्शन में बहुत अंतर नहीं देखेंगे, लेकिन यदि यह करना सस्ता है और परीक्षण करना है तो शायद यह सही काम है। –

संबंधित मुद्दे