आप एक पाश, जहां यह कई बार निष्पादित करता है में पाठक को क्रियान्वित करने की गिरफ्तारी, तो सुनिश्चित करें कि आप CommandBehavior.CloseConnection
SqlCommand cmd = new SqlCommand();
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
उपयोग कर रहे हैं आप नहीं, हर बार लूप लाइन प्रक्रियाओं रहे हैं तो करते हैं, जब यह खत्म हो जाता है और आरडीआर और कनेक्शन ऑब्जेक्ट गुंजाइश से बाहर हो जाता है, तो कनेक्शन ऑब्जेक्ट स्पष्ट रूप से बंद नहीं किया जाएगा, इसलिए यह केवल बंद हो जाएगा और पूल पर वापस जारी किया जाएगा जब कचरा कलेक्टर आखिरकार इसे अंतिम रूप देने के लिए हो जाता है ...
फिर, यदि आपका लूप पर्याप्त तेज़ है, (जो बहुत संभव है), तो आप कनेक्शन से बाहर हो जाएंगे। के रूप में कोड अतिरिक्त अनावश्यक कनेक्शन, (अधिकतम करने के लिए) बनाने और के लिए जीसी करने के लिए लूप के साथ "पकड़ने" इंतज़ार कर रखता है
इस अतिरिक्त विलंबता और देरी का कारण होगा (पूल एक अधिकतम सीमा यह उत्पन्न कर सकते हैं है) जो उनका उपयोग कर रहा है ...
स्रोत
2009-03-19 17:13:40
क्या आप कुछ कोड पोस्ट कर सकते हैं? –
क्या एसक्यूएल क्वेरी प्रोफाइलर इस मुद्दे के बारे में कोई संकेत बताता है? –
ईजेबी: कोड पोस्ट करने के लिए तैयार नहीं है। मैं डीबीए नहीं कर रहा हूँ और प्रोफाइलर के बारे में ज्यादा जानकारी नहीं है: समस्या ही हम भी शुद्ध का उपयोग निष्पादित पाठक आदेश (एमएस मदद में तो उपलब्ध) – Maciej