कृपया क्वेरी के इन दो प्रकार आपके मन में आने:'जहां उसके बाद संघ' का उपयोग करना या का उपयोग करते हुए यूनियन तो कहाँ '
--query1
Select someFields
From someTables
Where someWhereClues
Union all
Select someFields
FROM some Tables
Where someWhereClues
--query2
Select * FROM (
Select someFields
From someTables
Union all
Select someFields
FROM someTables
) DT
Where someMixedWhereClues
नोट:
दोनों प्रश्नों अंतिम परिणाम क्षेत्रों में ही कर रहे हैं
मैंने पहले सोचा था। क्वेरी तेज है या इसका प्रदर्शन बेहतर है!
लेकिन कुछ शोध के बाद मैं इस note से उलझन में:
एसक्यूएल सर्वर (के रूप में आरडीबीएमएस का एक नमूना) पहले पढ़ता पूरे डेटा तो रिकॉर्ड करना चाहते हैं। => इसलिए दोनों प्रश्नों में सभी रिकॉर्ड पढ़ेंगे और खोजेंगे।
कृपया मेरी गलतफहमी पर मेरी सहायता करें, और यदि क्वेरी 1 और क्वेरी 2 के बीच कोई अन्य अंतर है?
संपादित: जोड़ने नमूना योजनाओं:
select t.Name, t.type from sys.tables t where t.type = 'U'
union all
select t.Name, t.type from sys.objects t where t.type = 'U'
select * from (
select t.Name, t.type from sys.tables t
union all
select t.Name, t.type from sys.objects t
) dt
where dt.type = 'U'
निष्पादन योजनाओं हैं:
ही दोनों कर रहे हैं और 50%
आप दोनों प्रश्नों पर निष्पादन योजना चलाकर क्या हो रहा है, यह जांच सकते हैं। –
यदि आप अपने दिए गए डेटा के लिए निष्पादन योजनाएं और सर्वर आंकड़े (समय/आईओ) की जांच करते हैं, तो आप देख सकते हैं कि कौन सा बेहतर है। मेरे सिर के ऊपर से, पहला एक बेहतर दिखता है, लेकिन एसक्यूएल सर्वर ऑप्टिमाइज़र दोनों बराबर बनाने के लिए पर्याप्त स्मार्ट हो सकता है। इसलिए - यह देखने का तरीका है कि इसका विश्लेषण करने का तरीका क्या है। –
मैं निष्पादन योजना भी जोड़ता हूं !!?? –