2013-04-29 6 views
6

क्या खंड में किसी भी मामले में मूल्यों का क्रम है? (यह है कि अगर महत्वपूर्ण है Firebird एसक्यूएल पर है) करता हैएसक्यूएल में वस्तुओं का क्रम: जहां() मामले में?

जैसे:

where field1 in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 

प्रस्ताव एक प्रदर्शन वृद्धि

where field1 in (3, 5, 10, 2, 1, 8, 6, 9, 4, 7) 
+0

मैंने 'डेल्फी' टैग हटा दिया, क्योंकि आपके प्रश्न में डेल्फी के साथ बिल्कुल कुछ नहीं है। कृपया केवल उन टैग का उपयोग करें जो वास्तव में आपके प्रश्न पर लागू होते हैं; टैग का उद्देश्य श्रेणियों में प्रश्न वर्गीकृत करना है। धन्यवाद। –

+0

मेरा अनुमान यह होगा कि जब तक कि सूची में भारी नहीं है, तब तक आधुनिक हार्डवेयर पर कोई ध्यान देने योग्य अंतर नहीं होता है, क्योंकि दिन के अंत में वहां एक लूप होना होता है जो उस सूची के तत्वों के माध्यम से पुन: प्रयास करेगा और उनकी तुलना करेगा क्षेत्र मूल्य –

+0

धन्यवाद यह सुनिश्चित नहीं था कि लूप के लिए अनावश्यक इंडेक्स ट्रैवर्सल इस तरह से खराब हो गया है या अगर यह सूची को सॉर्ट करता है। Thx –

उत्तर

1

हाँ, यह होगा से अधिक है, लेकिन संभवतः एक कार्यान्वयन निर्भर तरीके से। आईएन को अनुक्रमिक OR के रूप में संसाधित किया जाता है, और कोई यह मान सकता है कि सबसे अधिक प्रसंस्करण आदेश लिखा गया है।

उस ने कहा, मैं यह मानकर शुरू करूंगा कि ऑप्टिमाइज़र दिए गए क्रम में तत्वों को संसाधित करेगा, क्योंकि यह सबसे आसान है, और सेट में उन्हें कम से कम संभवतः सेट में रैंक करें। यह चोट नहीं पहुंचा सकता है, और शायद सबसे अधिक मदद करेगा। क्या अंतर मापने योग्य या महत्वपूर्ण है एक और मामला; इसे मापें और हमें बताएं।

+0

मुझे यकीन नहीं था कि क्या यह इंडेक्स को आगे और आगे चलने वाले क्षेत्रों को स्थानांतरित करने के लिए मजबूर करेगा, जो पहले से ही चेक किए गए हैं (जैसे एक खंडित हार्ड ड्राइव) या यदि यह पहले स्वयं को क्रमबद्ध करता है तो मुझे समय सॉर्टिंग करने की आवश्यकता नहीं थी । मैं पता लगाने के लिए परीक्षण चलाऊंगा। –

+0

कोई उल्लेखनीय अंतर नहीं लगता है, या मैंने किए गए परीक्षणों में मापने के लिए अंतर बहुत छोटा था। –

+0

@ChrisValentine: आश्चर्य की बात नहीं है। यदि सेट बड़ा हो गया है, तो मैं इसे लुकअप टेबल में रखूंगा, क्लस्टर्ड इंडेक्स जोड़ूंगा, फिर इसमें शामिल हो जाऊंगा। मेरा मानना ​​है कि एसक्यूएल अनुकूलकों को हमेशा एक या अधिक से अधिक कुशलता से शामिल होने की उम्मीद की जा सकती है। ओआर फ़ंक्शन, आखिरकार, एक टेबल में डालने के लिए बहुत छोटे सेट के लिए सिंटैक्टिक चीनी है। –

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