2009-07-16 18 views
10

सबसे तेज़ SQL सर्वर कनेक्शन प्रोटोकॉल क्या है?सबसे तेज़ SQL सर्वर प्रोटोकॉल?

संबंधित: कौन से प्रोटोकॉल स्थानीय बनाम दूरस्थ बनाम उपलब्ध हैं, और क्या यह सबसे तेज़ प्रोटोकॉल की पसंद को प्रभावित करता है?

+0

यह भी देखें [नामित पाइप क्या हैं?] (Http://stackoverflow.com/questions/175579/what-are-named-pipes) – Vadzim

उत्तर

14

वीआईए। यह सबसे तेज़ एसक्यूएल प्रोटोकॉल है, यह समर्पित हार्डवेयर पर चलता है और SQL सर्वर बेंचमार्क किए गए रिकॉर्ड करने में उपयोग किया जाता है।

ध्यान दें कि VIA प्रोटोकॉल माइक्रोसॉफ्ट द्वारा हटाई गई है, और Microsoft SQL सर्वर की एक भविष्य संस्करण में हटा दिया जाएगा। हालांकि यह एसक्यूएल सर्वर में समर्थित है 2008, एसक्यूएल सर्वर 2008 R2 और एसक्यूएल सर्वर 2012.

साझा मेमोरी प्रदर्शन के रूप में बगल में है, लेकिन यह केवल एक ग्राहक और कहा कि वास्तव में स्मृति साझा कर सकते हैं एक सर्वर के बीच काम करता है , केवल स्थानीय।

सामान्य हार्डवेयर पर दूरस्थ कनेक्टिविटी के लिए, टीसीपी जाने का रास्ता है। सामान्य परिचालनों के तहत, यह नामित पाइप्स के समान प्रदर्शन करता है। धीमी गति से या व्यस्त नेटवर्क पर, यह मजबूती और गति में एनपी से बेहतर साबित, एक तथ्य documented in MSDN:

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

नाम पाइप्स भी ग्राहक के लिए नेतृत्व कर सकते हैं कनेक्ट समय बहिष्कार:

टीसीपी/आईपी सॉकेट भी एक बैकलॉग कतार समर्थन करते हैं। यह नामित पाइप की तुलना में चिकनाई प्रभाव प्रदान कर सकता है जो पाइप-व्यस्त त्रुटियों का कारण बन सकता है जब आप को SQL सर्वर से कनेक्ट करने का प्रयास कर रहे हैं।

दुर्भाग्य से सामान्य ग्राहक विन्यास पहले एनपी कोशिश करता है और इस कनेक्टिविटी समस्याएं पैदा कर सकता है, जहां ग्राहक नेटवर्क config पर टीसीपी को लागू करने (ऊपर उद्धृत कारणों से) (या कनेक्शन स्ट्रिंग में, tcp:servername के माध्यम से) को छोड़ देता है एनपी प्रयास कनेक्ट और लोड के तहत एक बेहतर अनुभव के लिए सीधे टीसीपी जाता है।

अब यह सच है कि मैंने जिस उद्धरण को ऊपर उद्धृत किया है, उसकी कॉन्फ़िगरेशन के आसान एनपी की प्रशंसा करने के लिए चला जाता है, संभवतः फ़ायरवॉल में एसक्यूएल टीसीपी पोर्ट खोलने की कोई आवश्यकता नहीं है, लेकिन वहां मुझे और बीओएल के अलग-अलग विचार हैं।

+2

एनपी केवल तभी जब आप विन 2000 या पुराने एमडीएसी से अपग्रेड किया गया हो। एक स्वच्छ एक्सपी निर्माण पहले टीसीपी है। – gbn

+0

क्या इसके लिए कोई स्रोत है? विशेष रूप से साझा मेमोरी सबसे तेज़ है (मैं स्पष्ट रूप से देख सकता हूं कि यह क्यों होगा)। – PeterX

7

Shared memory is fastest for local (उसी मशीन पर क्लाइंट और सर्वर)। नामित पाइप शायद स्थानीय के लिए दूसरा उपवास है। रिमोट के लिए हर कोई टीसीपी-आईपी का उपयोग कर रहा है और शेष प्रोटोकॉल नेटवर्किंग इतिहास में बदल रहे हैं।

+3

मुझे लगता है कि स्थानीय द्वारा आपका मतलब है "उसी मशीन पर चलना", नहीं एक स्थानीय नेटवर्क तब से साझा मेमोरी काम करता है। – ichiban

+0

उपर्युक्त के अनुसार, क्या आपके पास इसका समर्थन करने का कोई स्रोत है? (मैं देख सकता हूं कि यह क्यों होगा)। – PeterX

+0

@PeterX स्टैक ओवरफ़्लो पर नामित अन्य प्रश्न, नामित पाइप और टीसीपी-आईपी (उसी मशीन के लिए) गति के लिए समान होते हैं। https://stackoverflow.com/questions/10872557/how-slow-are-tcp-sockets-compared-to-named-pipes-on-windows-for-localhost-ipc – MatthewMartin

0

Using Shared Memory Protocol

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

0

नामित पाइप्स सबसे तेज़ SQL सर्वर प्रोटोकॉल है।