क्या ट्रांसमिशन के लिए एसक्यूएल सर्वर से डाटा रिकवर किया जाता है?


20

क्या Microsoft SQL सर्वर से डेटा पुनर्प्राप्त किया गया है? यदि इसे कनेक्शन स्ट्रिंग द्वारा नियंत्रित किया जाता है, तो क्या यह बताने का कोई सरल तरीका है कि कोई विशेष ऐप इसका उपयोग कर रहा है?

मैं विश्लेषण उपकरणों की जांच कर रहा हूं, और डेटा की मात्रा हमारे नेटवर्क पर संचारित करने में मिनटों का समय ले सकती है। मैं सोच रहा हूं कि क्या हमें एक प्रदर्शन वृद्धि की उम्मीद करनी चाहिए अगर हम एक ही रिमोट सर्वर पर एक संपीड़ित डेटा स्टोर से डेटा खींचते हैं।

जब तक हम इस विषय पर हैं, मैं उत्सुक हूं: डेटा बाइनरी या एएससीआईआई में प्रेषित है? उदाहरण के लिए, यदि मान 12345किसी INTस्तंभ से क्वेरी किया जाता है, तो क्या इसे पाँच बाइट्स 0x31, 0x32, 0x33, 0x34, 0x35 के रूप में प्रसारित किया जाता है; मूल्य के लिए आवश्यक दो बाइट्स; या चार बाइट्स कॉलम के लिए आवश्यक हैं?

स्पष्ट होने के लिए, मैं समझता हूं कि संपीड़न के साथ डेटा संग्रहीत करने और इसे समर्थन देने के बारे में विकल्प हैं । मैं इस बारे में पूछ रहा हूं कि डेटा कैसे प्रसारित होता है।


संपीड़न एक आंतरिक तंत्र है। एक पेज डिस्क पर और बफर पूल में, लेकिन तार पर एक नियमित बाइट स्ट्रीम है। @ शॉनमेलन ने पहले से तार प्रारूप को सूँघने के बारे में ब्लॉग किया है और उम्मीद है कि हाइलाइट्स के साथ जवाब देंगे।
मार्क स्टोरी-स्मिथ

मैंने जो लिखा वह इस बात पर अधिक केंद्रित था कि क्या इसे एन्क्रिप्ट किया गया था। मैं उस डेटा को निकाल सकता था जिसे मैं पठनीय प्रारूप में खींच रहा था, हालांकि मैंने पूर्णांक मानों की कोशिश नहीं की। निश्चित रूप से जानने का केवल तरीका सिर्फ सेटअप है और इसे आज़माएं: mssqltips.com/sqlservertip/2436/…
Shawn Melton

@ MarkStorey-Smith: तो उत्तर "नहीं" है, डेटा संकुचित नहीं है? यह शर्म की बात है, लेकिन यह समझाने में मदद करता है कि इन बड़े प्रश्नों को प्रसारित करने में इतना समय क्यों लग सकता है। लगता है कि मुझे एक कैश की आवश्यकता है जो शारीरिक रूप से करीब है। यदि आप इसे वास्तविक उत्तर बनाना चाहते हैं, तो मैं इसे स्वीकार करूंगा।
जॉन ऑफ ऑल ट्रेड्स

@ शॉनमेलन: यह निश्चित रूप से ऐसा करने का सही तरीका लगता है, मेरे पास सही परत को पाने के लिए पर्याप्त नेटवर्किंग पृष्ठभूमि नहीं है और जो मैं देख रहा हूं उसमें आत्मविश्वास होना चाहिए। सौभाग्य से मेरे लिए ऐसे लोग हैं जिनके हाथों में अधिक कौशल और अधिक समय है!
जॉन ऑफ ऑल ट्रेड्स

जवाबों:


16

जिस डेटा को आप कंप्रेस करना चाह रहे हैं, वह टीडीएस के माध्यम से वायर पर भेजा गया है । यहाँ कुछ मामूली संपीड़न है, लेकिन कहीं भी आप पृष्ठ / पंक्ति संपीड़न, बैकअप संपीड़न या ColumnStore संपीड़न के साथ प्राप्त संपीड़न के प्रकार के पास नहीं है।

यह पहले के लिए कहा गया है:

http://connect.microsoft.com/SQLServer/feedback/details/412131/enable-network-compression-compress-tds-stream

http://connect.microsoft.com/SQLServer/feedback/details/377479/wan-compression-option

आइटम अभी भी खुले हैं, इसलिए शायद कुछ उम्मीद है। कनेक्शन स्ट्रिंग के माध्यम से इसे नियंत्रित करने का कोई तरीका नहीं है जो मैंने कभी देखा है।

इस बीच में कुछ उत्पाद हैं जो ऐसा करने का दावा करते हैं, जैसे

http://www.nitrosphere.com/products/nitroaccelerator/

http://toonel.net/tcpany.htm

आप सम्पीडन का समर्थन करने के लिए अपने SQL सर्वर और एप्लिकेशन सर्वर के बीच नेटवर्क को संभावित रूप से कॉन्फ़िगर कर सकते हैं (और एन्क्रिप्शन जैसी अन्य चीजें), लेकिन आप यहां मेरे दायरे से परे हैं, और मुझे यकीन नहीं है कि यह SQL की हर एक विशेषता द्वारा समर्थित होगा सर्वर।

और ईमानदार होने के लिए, मुझे यकीन नहीं है कि यह वह जगह है जहां आप अनुकूलन पर ध्यान केंद्रित करना चाहते हैं। इस धारा को संपीड़ित करना वास्तव में चीजों को धीमा कर सकता है और कम बाइट भेजने के लाभों से आगे निकल सकता है। मैं इस तरह के काम और परीक्षण में निवेश करने में समय बिताने की तुलना में सर्वर और क्लाइंट के बीच बेहतर नेटवर्क कनेक्टिविटी पर पैसा नीचे गिराना चाहूंगा कि क्या इसका कोई वास्तविक लाभ है - और इसके बाद तक ऐसा करने में सक्षम नहीं है। 10/100 से टमटम फाइबर तक नेटवर्क I / O पर एक ज्ञात और अनुमानित प्रभाव पड़ता है।


मुझे तार पर भेजे गए बाइट्स के प्रारूप के बारे में निश्चित नहीं है; आपको उसके लिए किसी प्रकार का पैकेट स्निफर सेट करना होगा (या हो सकता है कि किसी ने पहले ही कर लिया हो और उसमें झंकार हो)।

संपीड़न के प्रभाव के लिए, जब तक आप फ्यूजन-आईओ या अन्य उच्च-अंत एसएसडी-प्रकार के समाधान पर नहीं होते हैं, तब तक आप निश्चित रूप से वर्तमान में I / O बाध्य होते हैं, और सीपीयू-बाउंड नहीं होते हैं। इसलिए जब तक आपके पास CPU ओवरहेड है, आपको कंप्रेशन इनेबल्ड के साथ तेज प्रदर्शन देखना चाहिए (लेकिन यह नेटवर्क प्रदर्शन को नहीं बदलेगा , क्योंकि ट्रांसमिशन से पहले डेटा असम्पीडित है)। मैं कहता हूं कि आपके सर्वर, आपके एप्लिकेशन, आपके डेटा या आपके उपयोग के पैटर्न के बारे में कुछ नहीं जानना - आपके पास बहुत अच्छी तरह से एक किनारे का मामला हो सकता है जहां संपीड़न वास्तव में प्रदर्शन को नुकसान पहुंचाता है, या जहां डेटा सिर्फ अच्छे संपीड़न अनुपात के लिए एक अच्छा उम्मीदवार नहीं है।


यह निश्चित रूप से नेटवर्क है कि समस्या है, कम से कम जब एमबी के 10s संचारित। मैं RDP में सर्वर पर सेकंड में डेटा क्वेरी कर सकता हूं, लेकिन कहा गया कि सर्वर शारीरिक रूप से राज्य से बाहर स्थित है, और इसलिए व्यवसाय स्थान में कंप्यूटर पर डेटा की प्रतिलिपि बनाना - साधारण फ़ाइल से या मेरे द्वारा कंप्यूटर से स्थानीय क्वेरी करके - मिनट लगते हैं।
जॉन ऑफ ऑल ट्रेड्स

इसलिए हो सकता है कि आपको प्रतिलिपि, दर्पण, या कुछ और की नकल करनी चाहिए, और प्रतिलिपि से स्थानीय रूप से डेटा की क्वेरी करनी चाहिए। इस तरह विलंबता अंत उपयोगकर्ताओं द्वारा महसूस नहीं किया जाता है। आप कैसे संपर्क करते हैं यह इस बात पर निर्भर करता है कि डेटा कितना ताजा होना चाहिए। और यह भी कि क्या आपको एक समय में 10 एमबी एमबी डेटा की क्वेरी करने के लिए वास्तव में एक अंतिम उपयोगकर्ता की आवश्यकता है।
हारून बर्ट्रेंड

बिल्कुल सही। जब तक हम बीआई सर्वर को स्थानांतरित नहीं कर सकते। डेटा की मात्रा के बारे में, विश्लेषण विश्लेषण के लिए है (QlikView, एटीएम का उपयोग करके), इसलिए डेटा के वर्ष और बहुत सारे आयाम और तथ्य। फ़ाइलें संपीड़न के साथ 100 एमबी तक होती हैं , और यह केवल कुछ वर्षों के डेटा के लिए है!
जॉन ऑफ ऑल ट्रेड्स

@JonofAllTrades सबसे अच्छे इरादों के साथ मतलब है ... ऐसा लगता है कि आप गलत समाधान के साथ गलत समस्या को हल करने की कोशिश कर रहे हैं।
मार्क स्टोरी-स्मिथ

@ MarkStorey- स्मिथ: विकल्प क्या है? बहुत अधिक डेटा है, और यह हमारे WAN तक पहुँचने में धीमा है। जैसा कि हारून का उल्लेख है, कुछ प्रकार के स्थानीय कैश मदद करेंगे। प्रेषित डेटा की मात्रा में कटौती से उपयोगकर्ताओं के विश्लेषण का दायरा कम होगा, जिसने दृश्य डेटा खोज के उद्देश्य को हराया।
जॉन ऑफ ऑल ट्रेड्स

4

क्या Microsoft SQL सर्वर से डेटा पुनर्प्राप्त किया गया है? यदि इसे कनेक्शन स्ट्रिंग द्वारा नियंत्रित किया जाता है, तो क्या यह बताने का कोई सरल तरीका है कि कोई विशेष ऐप इसका उपयोग कर रहा है?

तकनीकी रूप से, परिणाम बहुत कम संकुचित हो सकते हैं

टैब्यूलर डेटा स्ट्रीम (टीडीएस) 7.3B- को सबसे पहले SQL Server 2008 R2 द्वारा समर्थित - ने null बिटमैप कंप्रेशन नाम की एक ऐसी चीज़ पेश की, जो कई नलियों वाली पंक्तियों को कम बाइट्स का उपयोग करके प्रसारित करने की अनुमति देती है, जो कि आमतौर पर अशक्त फ़ील्ड मानों के लिए आवश्यक होती हैं।

सर्वर नियमित पंक्तियों को नल बिटमैप संपीड़ित पंक्तियों के साथ अपने चयन पर रोक सकता है क्योंकि यह परिणाम भेजता है। क्लाइंट का इस पर कोई नियंत्रण नहीं है, इसलिए कोई प्रासंगिक क्लाइंट-साइड कॉन्फ़िगरेशन विकल्प उपलब्ध नहीं हैं।

नल बिटमैप वर्तमान में TDS द्वारा समर्थित संपीड़न का एकमात्र रूप है। यदि एक पंक्ति बिटमैप संपीड़ित नहीं है, तो यह असम्पीडित है।

जब तक हम इस विषय पर हैं, मैं उत्सुक हूं: डेटा बाइनरी या एएससीआईआई में प्रेषित है?

गैर-पाठ डेटा प्रकार के कॉलम टीडीएस प्रोटोकॉल द्वारा परिभाषित एक द्विआधारी प्रारूप का उपयोग करके प्रेषित किए जाते हैं ।


2

जैसा कि कहीं और उल्लेख किया गया है , इस मुद्दे के आसपास काम करने के लिए आप वीपीएन स्थापित करने और संपीड़न को सक्षम करने पर विचार कर सकते हैं।

जैसा कि दूसरों ने कहा है कि SQL सर्वर TDS प्रोटोकॉल में निर्मित कोई संपीड़न नहीं है। यह भी कहने योग्य है कि डिफ़ॉल्ट रूप से कोई एन्क्रिप्शन नहीं है। एन्क्रिप्शन को सक्षम करने के लिए आपको प्रमाणपत्रों का उपयोग करना होगा और इसे कनेक्शन स्ट्रिंग्स में निर्दिष्ट करना होगा।

दोनों मुद्दों को हल करने के लिए सबसे आसान समाधान एन्क्रिप्शन और संपीड़न सक्षम के साथ एक वीपीएन सुरंग खोलना है। सरल Microsoft PPTP दोनों मुद्दों को हल करता है और सेटअप करना आसान है।


1

क्यों नहीं एक स्थानीय SQL इंस्टालेशन जो प्रासंगिक डेटा को कैश करता है और हर n घंटे को सिंक करता है? जब आप सारांश कक्ष तक पहुँचते हैं, तो क्यूब्स को देखने के लिए दूसरी चीज़ होती है और एक 'विवरण प्राप्त करें' बटन होता है। इसके बाद ही संबंधित विस्तृत पंक्तियों को लाया जाएगा।


आपका पहला वाक्य इस टिप्पणी की तरह लगता है ।
हारून बर्ट्रेंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.