2011-02-25 13 views
11

क्या वास्तविक दस्तावेज़ डीबी (जैसे सोफे या मोंगो) के विकल्प के रूप में एसक्यूएल सर्वर एक्सएमएल कॉलम का उपयोग करना संभव है?एसक्यूएल सर्वर एक्सएमएल कॉलम दस्तावेज़ डीबी के लिए विकल्प?

मैं एक GUID पी आईडी और दस्तावेज़ के लिए एक XML स्तंभ के साथ एक तालिका बनाने के लिए थे, तो। दस्तावेज़ डीबी का उपयोग करने की तुलना में मुख्य समस्याएं क्या होंगी?

Sql सर्वर का समर्थन करता है एक्सएमएल स्तंभों पर अनुक्रमण तो क्वेरी करने के लिए पूरी तरह भयानक नहीं होना चाहिए?

+1

बहुत अच्छा सवाल! मैं कुछ समय के लिए एक गरीब मनुष्य NoSQL समाधान के रूप में एसक्यूएल एक्सएमएल कॉलम का उपयोग कर रहा हूं और यह अच्छी तरह से काम करता है। मैं मोंगो की कोशिश करने के लिए बहुत मोहक रहा हूं, लेकिन बुनियादी ढांचे का एक अतिरिक्त टुकड़ा जोड़ना हल्का नहीं किया जाना चाहिए (बैकअप रणनीति, डेटाबेस को अपडेट करना, ड्राइवर अपडेट करना ...) –

उत्तर

3

मैं पर इस के साथ कुछ प्रयोग कर रहा हूँ: http://rogeralsing.com/2011/03/02/linq-to-sqlxml-projections/

क्वेरी गति, 'सभ्य' है यह कुछ भी नहीं मैं स्केलिंग के लिए इसका उपयोग करेंगे। लेकिन मानक आधारभूत संरचना पर चल रहे स्कीमा मुक्त भंडारण की खुशी काफी अच्छी है।

+1

"स्कीमा मुक्त भंडारण मानक आधारभूत संरचना पर चल रहा है" - मैं 100% सहमत हूं। छोटी परियोजनाओं के लिए जिन्हें बड़े स्तर की आवश्यकता नहीं है - मुझे लगता है कि यह एक बेहतर व्यापारिक है और सिस्टम जटिलता को कम कर देता है, यदि आपके पास पहले से ही एसक्यूएल है। –

0

हां, यह संभव है। यह एक अच्छा विचार है कि यह सिर्फ एक अच्छा विचार है, यह सिर्फ 2 सेंट है ...

एक्सएमएल डेटाटाइप के साथ आने से पहले मैंने एक एनआरई कॉलम में एक्सएमएल स्टोर करने वाली प्रणाली पर काम किया - यह सुखद नहीं था, और कोई असली पाने के लिए डेटा से बाहर का उपयोग उस डेटा के कुछ संबंधों को रिलेशनल फॉर्म में श्रेय देना था।

ठीक है, एक्सएमएल डेटाप्रकार अब यह आसान एक एक्सएमएल ब्लॉब क्वेरी करने के लिए और निश्चित मूल्यों/उन्हें सूचकांक को निकालने के लिए बनाता है। लेकिन व्यक्तिगत रूप से, सामान्य रूप से, मैं नहीं करता। मैं यह नहीं कह रहा हूं कि एक्सएमएल का कभी भी उपयोग न करें क्योंकि इसके लिए परिदृश्य हैं - बल्कि अगर यह करने की आपकी सारी योजना है तो मैं सोच रहा हूं "क्या यह नौकरी के लिए सही उपकरण है"। एक दस्तावेज़ डेटाबेस के रूप में एक RDBMS का उपयोग करने से मुझे थोड़ा असहज महसूस होता है। जबकि मोंगोडीबी की तरह कुछ दस्तावेज डेटाबेस के रूप में ग्राउंड अप से बनाया गया है।

सब ईमानदारी में, मैं XML के रूप में डेटा भंडारण तो मैं तुम क्या प्रदर्शन की तरह होगा का एक संकेत दे नहीं कर सकता पर किसी भी निष्पादन परीक्षण नहीं किया है। यह जानने में रुचि होगी कि यह पैमाने पर कैसे कार्य करता है।

2

हाँ, आप कर सकते हैं। एसक्यूएल सर्वर एक्सएमएल कॉलम के अंदर एक दस्तावेज़ संग्रहीत करना काम करेगा और यदि आप मानक एक्सएमएल सीरियलाइजेशन का उपयोग करते हैं जो आपको एक सभ्य एसीआईडी ​​शिकायत कुंजी/मूल्य स्टोर के साथ छोड़ देगा। साथ ही, यह आपको सापेक्ष आसानी से इसके बारे में प्रश्न पूछने की अनुमति देगा और आप परिणामों को उस डेटा में शामिल कर सकते हैं जिसे आप अधिक रिलेशनल तरीके से स्टोर करते हैं। हम ऐसा करते हैं, यह काम करता है। यदि आप XML फ़ील्ड में सामग्री संग्रहीत करते हैं, तो एनईआरई का उपयोग करने से स्टोरेज मांग बहुत कम होती है और पूछताछ करना अधिक लचीला और तेज़ होगा।

क्या SqlServer आप नहीं मिलेगा (मोंगो की तुलना में) की सहज विफलता एक मोंगो की autosharding प्रतिकृति-सेट करता है। साथ ही, किसी दस्तावेज़ के अंदर गहरी विशिष्ट संपत्ति को बढ़ाने जैसे परमाणु संचालन कठिन है (हालांकि XQuery अद्यतन फ़ंक्शन के साथ असंभव नहीं है)। अधिकांश नोस्क्ल डेटाबेस पर अपडेट तेजी से होते हैं, क्योंकि वे "डेटा केवल डिस्क पर सुरक्षित" सिद्धांत पर अधिक आराम से होते हैं।

7

आप यहाँ में कई सवाल मिल गया है:

यह (जैसे काउच या मोंगो के रूप में) एक असली दस्तावेज़ DB के लिए एक विकल्प के रूप Sql सर्वर एक्सएमएल स्तंभों का उपयोग करना संभव है? हां, आप इसे एक विकल्प के रूप में उपयोग कर सकते हैं, लेकिन नहीं, यदि आप एक्सएमएल को विशेष रूप से संग्रहीत कर रहे हैं और किसी भी SQL सर्वर के रिलेशनल टूल का लाभ नहीं उठा रहे हैं तो शायद आप प्रदर्शन से संतुष्ट नहीं होंगे।

मैं एक GUID पी आईडी और दस्तावेज़ के लिए एक XML स्तंभ के साथ एक तालिका बनाने के लिए थे, तो। दस्तावेज़ डीबी का उपयोग करने की तुलना में मुख्य समस्याएं क्या होंगी? संक्षेप में, स्केलिंग आउट। एसक्यूएल सर्वर इस तरह की चीज को अच्छी तरह से स्केल नहीं करता है। आप इसे प्रतिकृति के साथ कर सकते हैं, लेकिन "वास्तविक" दस्तावेज़ डीबी के सापेक्ष प्रबंधन करना दर्दनाक है।

एसक्यूएल सर्वर एक्सएमएल कॉलम पर अनुक्रमण का समर्थन करता है तो पूछताछ पूरी तरह से भयानक नहीं होनी चाहिए? समस्या यह है कि SQL सर्वर की XML अनुक्रमणिका मूल डेटा की संग्रहण स्थान कई बार ले सकती है। इन इंडेक्स को ऑनलाइन (डीफ्रैग में) के रूप में नहीं रखा जा सकता है, इसलिए आप रखरखाव विंडो के दौरान लॉकिंग समस्याओं के साथ समाप्त होते हैं।

+0

विस्तृत उत्तर के लिए धन्यवाद। मैं वर्तमान में एक छोटे ढांचे में अवधारणा का प्रयास कर रहा हूं: लिंक से एसक्यूएल एक्सएमएल -> http://rogeralsing.com/2011/02/28/linq-to-sqlxml/ –

+0

आपका स्वागत है, खुशी है कि मैं मदद कर सकता हूं! –

+0

हाय ब्रेंट, क्या आप अंतिम वाक्य पर विस्तार कर सकते हैं? "इन इंडेक्स को ऑनलाइन बनाए रखा जा सकता है (जैसा कि डिफ्रैग में है), इसलिए आप रखरखाव विंडो के दौरान लॉकिंग मुद्दों के साथ समाप्त हो जाते हैं।" –

संबंधित मुद्दे