एडीओ.NET कनेक्शन पूलिंग और एसक्यूएल सर्वर

  • What is it?
  • How do I implement connection pooling with MS SQL?
  • What are the performance ramifications when
    • Executing many queries one-after-the other (i.e. using a loop with 30K+ iterations calling a stored procedure)?
    • Executing a few queries that take a long time (10+ min)?
  • Are there any best practices?
0
ro fr bn

4 उत्तर

कनेक्शन पूलिंग कनेक्शन का पुन: उपयोग करने के लिए एक तंत्र है, क्योंकि एक नया कनेक्शन स्थापित करना धीमा है।

यदि आप किसी MSSQL कनेक्शन स्ट्रिंग और System.Data.SQL क्लाइंट का उपयोग करते हैं तो आप पहले से ही इसका उपयोग कर रहे हैं - नेट में यह सामान ज्यादातर समय हुड के नीचे है।

30k पुनरावृत्तियों का एक लूप एक सर्वर साइड कर्सर (टी-एसक्यूएल कर्सर स्टेटमेंट्स देखें) के रूप में बेहतर हो सकता है, जो आप स्पोक के बाहर प्रत्येक चरण के साथ क्या कर रहे हैं उसके आधार पर।

लंबे प्रश्न ठीक हैं - लेकिन उन्हें वेब पेजों से कॉल करने से सावधान रहें क्योंकि Asp.Net को वास्तव में लंबे इंतजार के लिए अनुकूलित नहीं किया गया है और कुछ कनेक्शन काट दिया जाएगा।

0
जोड़ा

यह धागा द्वारा आपके प्रश्न का आंशिक रूप से उत्तर दिया गया था। एक खोज ने यह खुलासा किया होगा .. कनेक्शन पूलिंग की परिभाषा, जिसमें से एक Google </ए> ने पहली हिट के साथ यह उत्तर दिया होगा ..

जो केवल सर्वोत्तम प्रथाओं को छोड़ देगा, जो मुझे लगता है कि एक अच्छा सवाल होगा :)

+1 को कीथ का उत्तर । उसने सिर पर नाखून दाहिनी ओर मारा है।

एफएक्यू से सिर्फ एक विनम्र अनुस्मारक:

आपने पहले इंटरनेट खोजा है   अपना प्रश्न पूछना, और आप आते हैं   हम अनुसंधान और सूचना के साथ सशस्त्र   आपके प्रश्न के बारे में ... सही?

0
जोड़ा

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

आप एसक्यूएल कनेक्शन देखने के लिए एक्सपी/विस्टा के साथ प्रदर्शन मॉनिटर ऐप का उपयोग कर सकते हैं और पूलिंग का उपयोग किया जा रहा है या नहीं, आप बहुत तेज़ी से देखेंगे। प्रदर्शन मॉनीटर में ".NET CLR डेटा" श्रेणी "के अंतर्गत देखें।

0
जोड़ा

मैं दूसरा कीथ; यदि आप संग्रहीत प्रक्रिया को 30,000 बार बुला रहे हैं, तो कनेक्शन कनेक्शनिंग की तुलना में आपके पास बहुत बड़ी समस्याएं हैं।

0
जोड़ा