के साथ एसक्यूएल सर्वर प्रदर्शन मैंने पहले से ही इस विषय पर कुछ प्रश्न देखे हैं, लेकिन मैं इन दो तकनीकों के बीच प्रदर्शन अंतर पर कुछ अंतर्दृष्टि की तलाश में हूं।कुंजी/जोड़ी तालिका बनाम एक्सएमएल फील्ड और एक्सपीएथ
उदाहरण के लिए, मान लें कि मैं घटनाओं का एक लॉग रिकॉर्ड कर रहा हूं जो विशिष्ट घटना के लिए कुंजी/मूल्य जोड़े के शब्दकोश सेट के साथ सिस्टम में आ जाएगा। मैं बेस डेटा के साथ एक ईवेंट टेबल में एक प्रविष्टि रिकॉर्ड करूंगा लेकिन फिर मुझे अतिरिक्त कुंजी/मूल्य डेटा को जोड़ने के लिए एक तरीका चाहिए। मैं कभी नहीं जानूंगा कि किस प्रकार की कुंजी या मूल्य आएंगे, इसलिए किसी भी तरह की पूर्वनिर्धारित enum तालिका प्रश्न से बाहर दिखाई देती है।
यह घटना डेटा लगातार स्ट्रीमिंग में रहेगा ताकि सम्मिलित समय क्वेरी समय के समान ही महत्वपूर्ण हो।
जब मैं विशिष्ट घटनाओं के लिए पूछता हूं तो मैं ईवेंट पर कुछ फ़ील्ड और कुंजी/मूल्य डेटा से डेटा का उपयोग करूँगा। एक्सएमएल तरीके के लिए मैं रिकॉर्ड्स को फ़िल्टर करने के लिए क्लॉज के हिस्से के रूप में बस एक Attributes.exists ('xpath') कथन का उपयोग करता हूं।
सामान्यीकृत तरीका तालिका रिकॉर्ड का उपयोग मूल रूप से कुंजी और मूल्य फ़ील्ड के साथ ईवेंट रिकॉर्ड के विदेशी लिंक के साथ करना होगा। यह साफ और सरल लगता है लेकिन मुझे शामिल डेटा की मात्रा के बारे में चिंता है।
sql_variant में विभिन्न प्रकार हो सकते हैं, बीओएल सुझाव देता है कि यह इकाई-मूल्य सारणी –
@ केएम के लिए उपयोग करता है - हाँ यह कर सकता है, लेकिन यह सभी प्रकार का समर्थन नहीं करता है और ~ 8000 बाइट तक सीमित है - हालांकि शायद इस उदाहरण में कोई समस्या नहीं है । इसके साथ मेरी मुख्य चिंता यह होगी कि यह क्वेरी प्रदर्शन के लिए कैसा है, और संभावित प्रकार की रूपांतरण समस्याएं - मुझे – AdaTheDev
के बारे में पता नहीं है क्या आपने कभी वास्तव में एक गैर-मामूली जटिल अनुप्रयोग के साथ काम किया है जो डेटा को एक्सएमएल कॉलम के रूप में संग्रहीत करता है? मैं बीमा पॉलिसी प्रशासन प्रणाली के साथ काम कर रहा हूं जो हम बोलते हैं। 2 9 000 रिकॉर्ड पूछने के लिए 5 मिनट एक वास्तविक सिस्टम बेंचमार्क है। – ConcernedOfTunbridgeWells