प्रारूप शायद होना चाहिए:
<server>.<database>.<schema>.<table>
उदाहरण के लिए:DatabaseServer1.db1.dbo.table1
अपडेट करें :मैं जानता हूँ कि यह एक पुराना प्रश्न है और मेरे पास जो उत्तर है वह सही है; हालांकि, मुझे लगता है कि इस पर ठोकर खाने वाले किसी और को कुछ चीजें पता होनी चाहिए।
अर्थात्, किसी लिंक किए गए सर्वर से जुड़ने की स्थिति में क्वेरी करते समय ENTIRE लिंक किए गए सर्वर से तालिका संभावना होगी जॉइन ऑपरेशन करने के लिए सर्वर पर डाउनलोड किया जा सकता है जिससे क्वेरी निष्पादित हो रही है। ओपी के मामले में, दोनों table1
DB1
. से और table1
DB2
. से क्वेरी को क्रियान्वित करने वाले सर्वर को उनकी संपूर्णता में स्थानांतरित कर दिया जाएगा, जिसे संभवत:DB3
. नाम दिया गया है .
यदि आपके पास बड़ी टेबल हैं, तो यह हो सकता है जिसके परिणामस्वरूप एक ऑपरेशन होता है जिसे निष्पादित करने में लंबा समय लगता है। आखिरकार यह अब नेटवर्क ट्रैफ़िक गति से विवश है जो कि मेमोरी या डिस्क स्थानांतरण गति की तुलना में धीमी परिमाण का क्रम है।
यदि संभव हो, तो एक अस्थायी तालिका में आवश्यक डेटा खींचने के लिए, स्थानीय तालिका में शामिल हुए बिना, दूरस्थ सर्वर के विरुद्ध एकल क्वेरी निष्पादित करें। फिर उससे पूछताछ करें।
यदि यह संभव नहीं है तो आपको उन विभिन्न चीजों को देखने की जरूरत है जो SQL सर्वर को पूरी तालिका को स्थानीय रूप से लोड करने का कारण बनती हैं। उदाहरण के लिए GETDATE()
. का उपयोग करना या यहां तक कि कुछ जुड़ते हैं। अन्य प्रदर्शन हत्यारों में उचित अधिकार नहीं देना शामिल है।
कुछ और जानकारी के लिए http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/ देखें।