SQL सर्वर: क्या हमें टीसीपी या नामांकित पाइप का उपयोग करना चाहिए या डिफ़ॉल्ट का उपयोग करना चाहिए?


17

SQL सर्वर 2008 R2 से कनेक्ट करते समय उसी LAN में किसी भिन्न सर्वर पर .NET 4 क्लाइंट अनुप्रयोग से एक, तीन अलग-अलग नेटवर्क प्रोटोकॉल सेट कर सकते हैं:

  1. टीसीपी
  2. नाम दिया पाइप्स
  3. कनेक्शन स्ट्रिंग में कुछ भी सेट न करें और डिफ़ॉल्ट का उपयोग करें

सबसे अच्छा अभ्यास क्या है? क्या चुनना है?

अतिरिक्त जानकारी: टीसीपी और नामांकित पाइप दोनों सर्वर और क्लाइंट पर सक्षम हैं। एप्लिकेशन डेटाबेस मिररिंग का उपयोग कर रहा है। क्लाइंट और सर्वर एक तेजी से लैन पर संवाद करते हैं।

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

MSDN पर इस विषय पर एक लेख है लेकिन यह बहुत ही सामान्य और अस्पष्ट है। यह उपयोगी कुछ भी सलाह या सलाह नहीं देता है।


2
@ मेरा मानना ​​है कि यह किया था। मैंने tcp:वर्षों बाद एक अलग कंपनी के वातावरण में अधिकांश कनेक्शन स्ट्रिंग्स के भाग के रूप में कॉन्फ़िगर किया गया पाया । मुझे लगता है कि वे इसी तरह की समस्याओं को मिला।
usr

1
मुझे विश्वास नहीं है कि उत्तर के रूप में पोस्ट करूंगा। हालांकि, यह अजीब है, कि इस तरह की एक गंभीर समस्या अप्रकाशित है। प्रजनन के लिए बहुत दुर्लभ या कठिन होना चाहिए। @ccook
usr

1
हमारे लिए प्रजनन करना बहुत ही कठिन और कठिन है। सौभाग्य से जब हमने उस ऐप को बनाया जो हर मिनट कनेक्शन को समवर्ती करता है, तो वह इसे हर अब और फिर से पुन: पेश कर सकता है। यह अभी भी बहुत अप्रत्याशित है। हम उस परिवर्तन का परीक्षण कर रहे हैं, हालांकि - इसे ठीक करने से पहले थोड़ी देर प्रतीक्षा करें। हालांकि इस पर ध्यान देने के बाद, मैं निश्चित रूप से tcp का उपयोग करने के लिए इच्छुक हूं: डिफ़ॉल्ट रूप से जब तक कि ऐप और सर्वर एक ही मशीन पर न हों।
ccook

1
@ मेरे पास एक नया विचार था। विंडोज फ़ाइल शेयर कुख्यात अविश्वसनीय हैं। कई लोगों द्वारा स्पष्ट त्रुटियों और कनेक्शन विफलताओं को देखा जाता है। इसका निदान करना दुर्लभ लेकिन कठिन / असंभव है। नामित पाइप का उपयोग करते समय आप इस पूरी तकनीक को अपने SQL सर्वर परिनियोजन में खींच लेते हैं। यह सामान्य आधार पर नासमझी लगती है।
usr

1
माना। अब तक tcp: मुद्दे को संबोधित करता हुआ प्रतीत होता है। हालांकि हम इसकी पुष्टि के लिए थोड़ा इंतजार कर रहे हैं।
ccook

जवाबों:


18

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

नामांकित पाइपों के साथ अनिवार्य रूप से रूटिंग और अन्य ओवरहेड (जब तक कि आपके ऐप SQL सर्वर के रूप में एक ही मशीन पर नहीं होते हैं, जिस स्थिति में केवल थोड़ा अतिरिक्त ओवरहेड होता है) इसे कम कुशल विकल्प बनाते हैं, विशेष रूप से बड़े पैमाने पर, धीमी नेटवर्क वातावरण में (100 एमबी या उससे कम), या यदि आपका वर्कलोड फटने की स्थिति में आता है।

यदि आपके एप्लिकेशन SQL सर्वर के समान बॉक्स पर हैं , तो आपको साझा मेमोरी को भी ध्यान में रखना चाहिए - यदि आपके पास SQL ​​सर्वर बॉक्स पर सीधे SQL सर्वर के साथ संचार होता है, तो यह सबसे कुशल विकल्प होने जा रहा है।

आप टीसीपी / आईपी के प्रदर्शन लाभों के बारे में अधिक विस्तार से पढ़ सकते हैं


इसलिए यह मूल रूप से बहुत मायने नहीं रखता है लेकिन आमतौर पर टीसीपी के साथ जाना बेहतर होता है क्योंकि नामित पाइपों को चुनने का कोई कारण नहीं है। क्या आप उस सारांश से सहमत होंगे?
usr

1
@usr खैर, यह तब मायने रखता है जब आप स्केल करते हैं, या यदि आपका नेटवर्क बेकार है। लेकिन हां, सामान्य तौर पर, किसी भी मामले में नामित पाइपों को चुनने का कोई वास्तविक लाभ नहीं है, जिसे मैं जानता हूं।
हारून बर्ट्रेंड

7

नामित पाइप प्रोटोकॉल उस एप्लिकेशन के लिए उपयोगी होते हैं जो NetBIOS या अन्य LAN- आधारित प्रोटोकॉल के आसपास डिज़ाइन किए जाते हैं।

नामित पाइप एक एकल सुरक्षा डोमेन के भीतर दूरस्थ प्रक्रिया कॉल (RPC) तक आसान पहुँच प्रदान करता है और इस प्रकार इन अनुप्रयोगों के लिए फायदेमंद है।

आमतौर पर टीसीपी प्रोटोकॉल व्यवहार में अच्छा होता है क्योंकि आपको नेटवर्क पर इन सब की परवाह नहीं करनी होती है।

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