2010-09-02 21 views
11

मुझे कई तालिकाओं में एक चयन कथन चलाने की ज़रूरत है। मुझे यकीन है कि टेबल अलग-अलग रिकॉर्ड लौटाते हैं। मैं वैसे भी यूनियन का उपयोग कर रहा हूँ।यूनियन बनाम यूनियन का प्रदर्शन सभी

क्या मुझे यकीन है कि टेबल अलग-अलग रिकॉर्ड लौटाते हैं तो प्रदर्शन शर्तों में यूनियन या यूनियन का उपयोग करना बेहतर होता है?

+0

संभव डुप्लिकेट ([संघ या संघ सब, कि सवाल यह है कि करने के लिए] http://stackoverflow.com/प्रश्न/3909563/करने के लिए संघ या संघ-अखिल कि-है-प्रश्न) –

उत्तर

18

जब आप डुप्लिकेट रिकॉर्ड को नष्ट क्योंकि आप एक महंगी distinct sort आपरेशन से परहेज कर रहे हैं के बारे में चिंतित नहीं कर रहे हैं यूनिअन सभी यूनिअन की तुलना में बेहतर प्रदर्शन करेंगे। देखें: SQL SERVER – Difference Between Union vs. Union All – Optimal Performance Comparison

5

यूनिअन सभी हमेशा की तरह, तेजी से होता है क्योंकि यूनिअन डुप्लिकेट प्रविष्टियों

को बाहर
1

यूनियन का उपयोग करना बेहतर है जब आप जानते हैं कि आप सभी परिणाम पंक्तियां चाहते हैं, चाहे आप जानते हों कि वे अलग होंगे या नहीं। "सब" के बिना यूनियन हमेशा "अलग-अलग जांच" निष्पादित करेगा, भले ही डेटा वास्तव में क्या है।

0

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

3

यूनियन आंतरिक रूप से दो प्रश्नों को लागू करता है। 1. SELECT जो एक डेटासेट 2. DISTINCT वापस करेगा। कोई भी जिसने डेटाबेस इंटर्नल्स का अध्ययन किया है, आसानी से समझ सकता है कि प्रसंस्करण के मामले में DISTINCT खंड अत्यधिक महंगा है।

यदि आप सुनिश्चित हैं कि परिणामी डेटासेट में अद्वितीय पंक्तियां नहीं हैं तो हम UNION छोड़ सकते हैं और इसके बजाय UNION ALL का उपयोग कर सकते हैं। सिवाय इसके कि यह एक DISTINCT आग नहीं करता है आंतरिक रूप से हमें महंगा संचालन बख्शते

UNION ALLUNION के रूप में ही किया जाएगा

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