सबसे पहले, आर्किटेक्चरल रूप से, मैं किसी भी डिज़ाइन के बारे में बहुत चिंतित हूं जिसमें एकाधिक डेटाबेस लिंक पर डेटा खींचना शामिल है। मैंने इसे तब देखा है जब अंतिम स्रोत Oracle का कुछ प्राचीन संस्करण है जिसे लक्ष्य डेटाबेस सीधे से कनेक्ट नहीं कर सकता है इसलिए Oracle के मध्यवर्ती संस्करण को चलाने वाले एक मध्यवर्ती डेटाबेस का उपयोग किया गया था। हालांकि व्यवहार में ऐसा बहुत कम होता है।
प्रदर्शन के दृष्टिकोण से, इस प्रकार का दृष्टिकोण गंभीर रूप से समस्याग्रस्त है। बेशक, यह मुद्दा है कि डेटा को नेटवर्क पर दो बार भेजा जा रहा है। लेकिन चिंता की बात यह है कि आप एक कठिन समस्या ले रहे हैं, वितरित SQL कथनों को अनुकूलित कर रहे हैं, और इसे लगभग अट्रैक्टिव बना रहे हैं। आपको मूल रूप से या तो गारंटी देनी होगी कि आप एक ही क्वेरी में स्थानीय डेटा और दूरस्थ डेटा से कभी भी पूछताछ नहीं करेंगे या यदि ओरेकल एक बेवकूफ क्वेरी योजना पर निर्णय लेता है तो आपको परिणामी प्रदर्शन के साथ रहना होगा क्योंकि टूल्स का सेट आपको अनुमति देने के लिए छोड़ दिया गया है इस प्रकार की क्वेरी को अनुकूलित करना न्यूनतम है।
ऐसा कहा जा रहा है कि, मध्यवर्ती डेटाबेस को समानार्थक शब्द या विचारों की आवश्यकता होगी जो डेटाबेस लिंक को दूर कर दें। तो
ए पर:
- बी के लिए डेटाबेस लिंक बनाएं
बी पर:
- सी के लिए डेटाबेस लिंक बनाएं
- समानार्थी बनाएं
table
[email protected]
ए पर, आप तब कर सकते हैं
SELECT *
FROM [email protected]