Windows प्रमाणीकरण का उपयोग करते समय SQL सर्वर प्रबंधन स्टूडियो धीमा कनेक्शन या टाइमआउट


23

जब मैं Windows प्रमाणीकरण का उपयोग करते हुए TCP पर SQL Server 2012 आवृत्ति से कनेक्ट करने का प्रयास कर रहा हूँ, तो SQL सर्वर प्रबंधन स्टूडियो 2014 में बहुत लंबी देरी (10 ~ 30 सेकंड) हो रही है । ऑब्जेक्ट एक्सप्लोरर या एक नई रिक्त क्वेरी विंडो कनेक्ट करते समय ऐसा होता है। एक बार कनेक्ट होने के बाद, रनिंग क्वेरीज़ तेज़ है। समस्या तब नहीं होती है जब मैं SQL सर्वर प्रमाणीकरण का उपयोग करके कनेक्ट करता हूं।

वातावरण:

  • विंडोज 7, एक डोमेन उपयोगकर्ता के रूप में लॉग इन किया
  • IP पते के माध्यम से टीसीपी कनेक्शन (होस्टनाम नहीं)
  • सर्वर वीपीएन के माध्यम से जुड़े एक दूरस्थ स्थान पर है
  • कोई एन्क्रिप्शन नहीं

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

जिन चीजों के साथ मैंने कोई सफलता नहीं पाई है:

  • अक्षम एंटी-वायरस और फ़ायरवॉल
  • SSMS को मेरी उपयोगकर्ता सेटिंग पुनः बनाने के लिए बाध्य करने के लिए "% userprofile% \ AppData \ Roaming \ Microsoft \ SQL सर्वर प्रबंधन स्टूडियो" के तहत "12.0" फ़ोल्डर का नाम दिया।
  • टीसीपी के बजाय फोर्स नेटवर्क प्रोटोकॉल <default>। मैंने नामांकित पाइप्स की भी कोशिश की, लेकिन मेरा सर्वर इसके लिए सेटअप नहीं है।
  • SSMS 2012 स्थापित किया और 2014 के बजाय कोशिश की।
  • अक्षम IPv6
  • Blackholed crl.microsoft.com मेरी आदि \ Host फ़ाइल में 127.0.0.1 पर।
  • SSMS, विजुअल स्टूडियो और विंडोज में कस्टमर एक्सपीरियंस इम्प्रूवमेंट प्रोग्राम को डिसेबल कर दिया।
  • मेरे पीसी से सभी SQL सर्वर से संबंधित ऐप्स को अनइंस्टॉल किया और सिर्फ 2012 में पुनर्स्थापित किया।

TCPView सुराग:

  • TCPView का उपयोग करते हुए, मैंने देखा कि जब मैं एक नया कनेक्शन बनाता हूं, तो इसकी स्थिति तुरंत ही निर्मित हो जाती है, लेकिन तब SQL सर्वर के साथ एक या दो और कनेक्शन लगातार प्रयास किए जाते हैं और TIME_WAIT के साथ बंद हो जाते हैं । मेरे सह-कार्यकर्ता के कंप्यूटर पर, ये कनेक्शन स्थापित और ठोस हैं। इसलिए मुझे पूरा यकीन है कि यह टाइमआउट का स्रोत है, लेकिन कनेक्शन क्या हैं, और वे असफल क्यों होते हैं? (मेरे SSMS में कोई भी जुड़ाव नहीं है।)

कोई विचार?

अद्यतन: Intellisense / स्वत: पूर्ण सुराग (?):

मैंने देखा कि एक बार जब मैं अंत में कनेक्ट करता हूं, तो Intellisense / स्वतः पूर्ण काम नहीं करता है। क्या उन लोगों को SSMS से अलग कनेक्शन की आवश्यकता है? मैंने उन्हें अक्षम करने की कोशिश की, और यह लंबे कनेक्शन की देरी को हल करने के लिए प्रतीत नहीं हुआ।


क्या आपने / लॉग स्विच के साथ SSMS चलाने की कोशिश की है?
मिस्टर मागू

@MisterMagoo अब कोशिश कर रहा है। यह वास्तव में अपने कनेक्शन के प्रयासों के बारे में कुछ भी लॉग नहीं करता है (नया कनेक्शन बनाते समय फ़ाइल बढ़ती नहीं है)। यह ज्यादातर UI में कुछ पैकेज लोड करने के बारे में सामान है, उदाहरण के लिए "कैश से सफलतापूर्वक लोड किए गए घटक असेंबली"। मुझे कोई त्रुटि या अपवाद नहीं मिला।
जॉर्डन रीगर

ठीक है, मुझे यकीन नहीं था कि यह होगा, लेकिन यह एक त्वरित प्रयास के लायक था। यदि आप वास्तव में रुचि रखते हैं कि क्या चल रहा है, तो आपको Sysinternals Process Monitor को तोड़ना होगा और देखना होगा कि क्या आप पहचान सकते हैं कि क्या चल रहा है। Technet.microsoft.com/en-us/library/bb896645.aspx
मिस्टर मागू

मैं लगभग एक घंटे से ProcMon dumps पर पोज़ दे रहा हूं, लेकिन अभी बहुत सारे इवेंट्स (यहां तक ​​कि Ssms.exe तक फ़िल्टर किए गए) है कि मैं इसमें से बहुत कुछ नहीं बना सकता।
जॉर्डन रेजर

@MisterMagoo सभी मैं देख सकता हूं कि कनेक्शन के प्रयास जो मैंने TcpView के साथ देखे थे, वे वास्तव में एक लंबा समय ले रहे हैं (प्रत्येक 5 सेकंड में)। मैं यह आधार कर रहा हूं कि किसी विशेष स्थानीय पोर्ट पर "टीसीपी कनेक्ट" इवेंट को देखने के बाद, और फिर अगली बार मुझे उस स्थानीय पोर्ट पर भेजे गए या प्राप्त किए गए किसी भी चीज़ को कम से कम 5 सेकंड के बाद देखना है।
जोर्डन रिगर

जवाबों:


19

जब आप और फिर आपका सहकर्मी SQL सर्वर के साथ एक निशान चलाने की कोशिश करें, तो सर्वर से कनेक्ट करें।
आरपीसी, एसक्यूएल स्टेटमेंट और प्री-कनेक्ट चुनें - शुरू / पूर्ण।
सेव रिजल्ट्स टू टेबल ऑप्शन को सेलेक्ट करें, फिर टोंटी को खोजने के लिए 2 टेबल की तुलना करें।

या, जब से आप आईपी से कनेक्ट कर रहे हैं, यह रिवर्स DNS लुकअप कर सकता है। यदि हां, तो अपनी मेजबानों फ़ाइल में एक प्रविष्टि जोड़ें।


2
मैंने अपने सर्वर के आईपी पते के लिए एक स्थानीय आदि / मेजबान प्रविष्टि को जोड़ा, फिर एसएसएमएस को फिर से आज़माया। बिंगो! अत्यधिक तीव्र। धन्यवाद! (मैं पहले से ही IP पता के माध्यम से कनेक्ट SSMS छोड़ दिया, hostname नहीं।) मैं बस सोच रहा हूँ कि मुझे इस वर्कअराउंड की आवश्यकता क्यों है लेकिन मेरे सहकर्मी नहीं करते हैं। यह डीएनएस से संबंधित प्रतीत होता है। किसी भी मामले में, यह मेरे लिए एक बहुत अच्छा समाधान है, इसलिए मैं आपके उत्तर को अपडेट करने के बाद आपको इनाम दूंगा।
जॉर्डन रीगर

मुझे लगता है कि यह रिवर्स लुकअप था क्योंकि जब मैंने मेजबानों की एंट्री को हटाया था, तो पिंग - एक ###। ###। ###। ### पहले पिंग से पहले बहुत धीमा था (रिवर्स लुकअप के लिए 5 सेकंड रोक दिया गया था।) जब मेजबानों के प्रवेश को वापस जोड़ा गया, तो पिंग-ए तेज था। हालांकि ट्रैसर्ट या nslookup में कोई अंतर नहीं था। मुझे लगता है कि मेरे पीसी पर कुछ अलग होना चाहिए, जो मुझे उल्टा लुकअप करने के लिए प्रेरित कर रहा है जब मेरे सहकर्मी नहीं हैं (या यह सिर्फ उनके पर बहुत तेज है।) BTW, मेरा इंटेलीजेंस अब फिर से काम करता है कि कनेक्शन की गति तेज है।
जॉर्डन रीगर

यहां तक ​​कि मेजबान फ़ाइल में आईपी के लिए एक नकली डीएनएस प्रविष्टि इस काम को बहुत तेज करती है! धन्यवाद!
felickz

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

5

आपको अपने सर्वर या क्लाइंट डीएनएस सेटिंग्स को पहले जांचना चाहिए

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

जब से आप अन्य SQL सर्वर के साथ समस्या का सामना नहीं कर रहे हैं, लगभग निश्चित रूप से समस्या AD या DC कॉन्फ़िगरेशन से संबंधित नहीं है

कॉन्फ़िगर DNS सर्वर की जांच करने के लिए cmd से IPConfig.exe / सभी कमांड को फायर करें। आपके पास केवल AD के DNS सर्वर कॉन्फ़िगर होने चाहिए। सभी सार्वजनिक DNS सर्वर निकालें, और AD के DNS सर्वरों को छोड़ दें।


क्या आप यह सुझाव दे रहे हैं कि डोमेन नियंत्रक के आईपी पते को देखने के लिए SQL सर्वर एक सार्वजनिक DNS से ​​संपर्क कर रहा है, और यह विलंब का कारण बन रहा है जब यह मेरे विंडोज प्रमाणीकरण को मान्य करने का प्रयास करता है? अगर ऐसा है, तो एक ही वीपीएन पर, एक ही स्थानीय नेटवर्क पर मेरे सह-कार्यकर्ता के पीसी से ठीक काम क्यों होगा? मैंने अपने कंप्यूटर पर DNS सेटिंग्स की जाँच की, और एक अतिरिक्त तीसरा DNS सर्वर था जिसे मेरे आईपी विभाग ने मुझे जोड़ने के लिए कहा था, जो मेरे सह-कार्यकर्ता के पीसी पर मौजूद नहीं था। लेकिन जब मैंने उस सर्वर को हटा दिया, तो एक ipconfig / flushdns किया, और फिर से कोशिश की, यह अभी भी धीमा था।
जॉर्डन रीजर

IP पते या सर्वर के FQDN (केवल होस्टनाम नहीं) का उपयोग करना मेरे लिए एक बहुत बड़ा अंतर है। निश्चित रूप से मेरे मामले में एक धीमी DNS समस्या थी।
userSteve

0

मैंने C:\Windows\System32\drivers\etc\hostsइस तरह से लाइन जोड़कर फाइल आगे बढ़ाई :

201.202.203.204     mysqlserver

201.202.203.204 आपके SQL सर्वर का IP पता है।

mysqlserver - कोई भी नाम जो आपको पसंद है (आपको इसे कहीं भी उपयोग करने की आवश्यकता नहीं है)।

इससे मेरा सर्वर तेज हो गया।

आभार: d -_- b, जॉर्डन, Rieger, felickz, RobbZ


0

डोमेन नेटवर्क प्रोफ़ाइल के लिए अपने SQL सर्वर पर Windows फ़ायरवॉल बंद करें।

  • Powershell शुरू करें
  • Get-NetFirewallProfile -Profile Domainइसकी वर्तमान स्थिति की जांच करने के लिए चलाएँ
  • यदि यह सक्षम है, तो Set-NetFirewallProfile -Profile Domain -Enabled Falseइसे बंद करें : इसे बंद करें।

यदि यह ऐसा था, तो आप इसे बाद में वापस चालू कर सकते हैं और अपनी सेटिंग्स को ठीक कर सकते हैं। या, यदि आप सुरक्षित वातावरण में हैं, तो आप इसे छोड़ सकते हैं।

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

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