समाधान के साथ मुझे जो चुनौती दिखाई दे रही है:
FROM(
SELECT top(100) *
FROM Customers
UNION
SELECT top(100) *
FROM CustomerEurope
UNION
SELECT top(100) *
FROM CustomerAsia
UNION
SELECT top(100) *
FROM CustomerAmericas
)
यह है कि यह एक विंडो डेटा सेट बनाता है जो रैम में रहता है और बड़े डेटा सेट पर यह समाधान गंभीर प्रदर्शन समस्या पैदा करेगा क्योंकि इसे पहले विभाजन बनाना होगा और फिर यह विभाजन का उपयोग टेम्पर टेबल पर लिखने के लिए करेगा।
एक बेहतर समाधान निम्नलिखित होगा:
SELECT top(100)* into #tmpFerdeen
FROM Customers
Insert into #tmpFerdeen
SELECT top(100)*
FROM CustomerEurope
Insert into #tmpFerdeen
SELECT top(100)*
FROM CustomerAsia
Insert into #tmpFerdeen
SELECT top(100)*
FROM CustomerAmericas
अस्थायी तालिका में सम्मिलित करने के लिए चयन करें और फिर अतिरिक्त पंक्तियों को जोड़ें। हालाँकि, यह वापस आ गया है यदि डेटा में कोई डुप्लिकेट पंक्तियाँ हैं।
सबसे अच्छा समाधान निम्नलिखित होगा:
Insert into #tmpFerdeen
SELECT top(100)*
FROM Customers
UNION
SELECT top(100)*
FROM CustomerEurope
UNION
SELECT top(100)*
FROM CustomerAsia
UNION
SELECT top(100)*
FROM CustomerAmericas
इस विधि को उन सभी उद्देश्यों के लिए काम करना चाहिए जिनके लिए अलग-अलग पंक्तियों की आवश्यकता होती है। यदि, हालांकि, आप चाहते हैं कि डुप्लिकेट पंक्तियाँ केवल UNION ALL के लिए UNION बाहर स्वैप करें
शुभकामनाएँ!