से बहुत धीमी है, मैं इस बेहद अजीब स्थिति में आया, और मैंने सोचा कि मैं इसे खोजने के लिए भीड़ को फेंक दूंगा।कनेक्टेड सर्वर टेबल पर INNER जॉइन उप-क्वेरी
मैं एक प्रश्न है कि किसी लिंक किए गए सर्वर पर एक टेबल में शामिल होने गया था:
select a.*, b.phone
from table_a a,
join remote.table_b b on b.id = a.id
(lots of data on A, but very few on B)
इस क्वेरी हमेशा के लिए बात कर रहा था (कभी भी वास्तविक रन टाइम में पता चला), और वह यह है कि जब मैं B
नहीं था देखा सूचकांक, इसलिए मैंने इसे जोड़ा, लेकिन इससे इस मुद्दे को ठीक नहीं किया गया। अंत में, हताशा में मैंने कोशिश की:
select a.*, b.phone
from table_a a,
join (select id, phone from remote.B) as b on b.id = a.id
क्वेरी के इस संस्करण में, मेरे मन में कम से कम के रूप में, एक ही परिणाम होना चाहिए, लेकिन लो और निहारना, इसके तुरंत जवाब!
कोई विचार क्यों कोई लटकाएगा और दूसरी प्रक्रिया जल्दी से? और हाँ, मैंने यह सुनिश्चित करने के लिए इंतजार किया था कि इंडेक्स दोनों को चलाने से पहले बनाया गया था।
क्या आपने दोनों के लिए निष्पादन योजना देखी है? क्या वे अलग हैं? क्या आपने प्रत्येक विधि के बीच _dbcc dropcleanbuffers_ जारी किया था? – canon
'रिमोट.बी' में कितने रिकॉर्ड हैं? – Yuck
"रिमोट" डीबी एक लिंक सर्वर के माध्यम से पहुंचे किसी अन्य सर्वर पर है और लगभग 600 पंक्तियां हैं। – Limey