SQL सर्वर में क्रॉस-डेटाबेस क्वेरीज़ महंगी हैं? सभी डेटाबेस एक ही उदाहरण में हैं।
SQL सर्वर में क्रॉस-डेटाबेस क्वेरीज़ महंगी हैं? सभी डेटाबेस एक ही उदाहरण में हैं।
जवाबों:
क्षमा करें, प्रश्न पर टिप्पणी करने के लिए मेरे पास पर्याप्त प्रतिष्ठा नहीं है, लेकिन मेरे अनुभव से अगर क्लाइंट एप्लिकेशन एक क्वेरी के लिए लेनदेन उठाता है जो क्रॉस डेटाबेस जॉइन करता है तो यह वितरित किए गए लेनदेन को बढ़ावा देगा और डीटीसी लेनदेन का ओवरहेड होगा ।
इस मामले में डीटीसी ओवरहेड को प्रदर्शन के लिए एक नकारात्मक के रूप में देखा जा सकता है। आम तौर पर अंतर नगण्य होगा, हालांकि Microsoft डीटीसी लेनदेन का वर्णन इस प्रकार करता है:
वितरित लेनदेन आमतौर पर महत्वपूर्ण सिस्टम संसाधनों का उपभोग करते हैं
... जो आपके सर्वर द्वारा आवश्यक संसाधनों की पेशकश नहीं कर सकता है, तो प्रदर्शन में गिरावट का सुझाव देगा।
बस स्पष्ट करने के लिए, ऊपर दिया गया आलेख स्थानीय लेनदेन को बढ़ावा देता है जब दूरस्थ सिस्टम पेश किया जाता है, लेकिन मैंने क्रॉस सर्वर प्रश्नों का उपयोग करते समय उसी सर्वर पर लेनदेन के लिए यह मामला देखा है।
जैसा कि थॉमस स्ट्रिंगर अपनी टिप्पणी में बताते हैं, प्रमाणीकरण में अतिरिक्त ओवरहेड होगा, हालांकि मुझे लगता है कि यह एसआईडी-चालित होगा, वहां कम से कम ओवरहेड होगा जब तक कि आपको अन्य डेटाबेस तक पहुंचने के लिए अलग-अलग क्रेडेंशियल्स का उपयोग न करना पड़े।
यदि डेटाबेस सेटिंग्स में अंतर था, जो अतिरिक्त सुझावों में शामिल हो गया, जो पिछले सुझावों से बड़ा हो सकता है - उदाहरण के लिए डेटाबेस कॉलेशन। डेटाबेस टकराव एक कार्यात्मक अंतर के रूप में प्रकट हो सकता है, न कि केवल एक प्रदर्शन अंतर।
मुझे लगता है कि आरोन के पास प्रदर्शन के लिए सबसे मजबूत तर्क है आशावादी के साथ क्रॉस-डेटाबेस प्रश्नों के लिए संबंधों का उपयोग करने का लाभ नहीं होने पर जबकि एक डेटाबेस के भीतर आत्म-निहित आप अपने लाभ के लिए रिश्तों का उपयोग कर सकते हैं।
If a local transaction spans two or more databases on the same instance of the Database Engine, the instance uses an internal two-phase commit to commit all of the databases involved in the transaction.
- यदि आपने अन्यथा पाया है, तो कृपया स्पष्ट प्रजनन चरणों के साथ कनेक्ट पर बग की रिपोर्ट करें।
SQL सर्वर 2014 में, मेमोरी-ऑप्टिमाइज़ किए गए टेबल क्रॉस-डेटाबेस लेनदेन का समर्थन नहीं करते हैं। आप उसी लेनदेन या उसी क्वेरी से किसी अन्य डेटाबेस तक नहीं पहुंच सकते हैं जो मेमोरी-ऑप्टिमाइज़ किए गए टेबल तक भी पहुंचता है। आप किसी डेटाबेस में एक तालिका से डेटा को दूसरे डेटाबेस में मेमोरी-अनुकूलित तालिका में आसानी से कॉपी नहीं कर सकते। http://msdn.microsoft.com/en-us/library/dn584627(v=sql.120).aspx वितरित और क्रॉस-डेटाबेस लेनदेन डेटाबेस मिररिंग / AOAG के लिए समर्थित नहीं हैं। http://technet.microsoft.com/en-us/library/hh393530.aspx । यदि आप स्वामित्व का उपयोग करने जा रहे हैं, तो सुरक्षा जोखिमों से अवगत रहें। http://msdn.microsoft.com/en-us/library/ms188676.aspx