अन्य उत्तरों की तरह कहा, sp_reset_connection
इंगित करता है कि कनेक्शन पूल का पुन:उपयोग किया जा रहा है। एक विशेष परिणाम से अवगत रहें!
जिमी मेस का एमएसडीएन ब्लॉग कहा:
sp_reset_connection पिछले कनेक्शन की सेटिंग से लेन-देन अलगाव स्तर को सर्वर डिफ़ॉल्ट पर रीसेट नहीं करता है।
अपडेट करें :SQL 2014 से शुरू होकर, TDS संस्करण 7.3 या उच्चतर वाले क्लाइंट ड्राइवरों के लिए, लेन-देन आइसोलेशन स्तर वापस डिफ़ॉल्ट पर रीसेट हो जाएगा।
रेफरी:SQL सर्वर:पूल किए गए कनेक्शन में अलगाव स्तर लीक
यहां कुछ अतिरिक्त जानकारी दी गई है:
<ब्लॉकक्वॉट>sp_reset_connection क्या करता है?
डेटा एक्सेस API की परतें जैसे ODBC, OLE-DB और System.Data.SqlClient सभी (आंतरिक) संग्रहीत कार्यविधियों को कॉल करते हैंp_reset_connection एक कनेक्शन पूल से एक कनेक्शन का पुन:उपयोग करते समय। यह पुन:उपयोग होने से पहले कनेक्शन की स्थिति को रीसेट करने के लिए ऐसा करता है, हालांकि कहीं भी दस्तावेज नहीं किया गया है कि चीजें रीसेट हो जाती हैं। यह लेख कनेक्शन के उन हिस्सों का दस्तावेजीकरण करने का प्रयास करता है जो रीसेट हो जाते हैं।
sp_reset_connection कनेक्शन के निम्नलिखित पहलुओं को रीसेट करता है:
-
सभी त्रुटि स्थिति और संख्याएं (जैसे @@ त्रुटि)
-
सभी ईसी (निष्पादन संदर्भ) को रोकता है जो माता-पिता ईसी के समानांतर क्वेरी निष्पादित करने वाले बच्चे के धागे हैं
-
किसी भी बकाया I/Operations की प्रतीक्षा करता है जो बकाया है
-
कनेक्शन द्वारा सर्वर पर किसी भी होल्ड किए गए बफ़र्स को मुक्त करता है
-
कनेक्शन द्वारा उपयोग किए जाने वाले सभी बफर संसाधनों को अनलॉक करता है
-
कनेक्शन के स्वामित्व वाली सभी आवंटित मेमोरी को रिलीज़ करता है
-
कनेक्शन द्वारा बनाए गए किसी भी कार्य या अस्थायी तालिका को साफ़ करता है
-
कनेक्शन के स्वामित्व वाले सभी वैश्विक कर्सर को मारता है
-
खुले हुए किसी भी खुले SQL-XML हैंडल को बंद कर देता है
-
किसी भी खुले SQL-XML संबंधित कार्य तालिका को हटाता है
-
सभी सिस्टम टेबल बंद कर देता है
-
सभी उपयोगकर्ता टेबल बंद कर देता है
-
सभी अस्थायी वस्तुओं को छोड़ देता है
-
खुले लेनदेन को रोकता है
-
सूचीबद्ध होने पर वितरित लेनदेन से दोष
-
मौजूदा डेटाबेस में उपयोगकर्ताओं के लिए संदर्भ संख्या घटाता है जो साझा डेटाबेस लॉक जारी करता है
-
अधिग्रहीत ताले को मुक्त करता है
-
किसी भी अधिग्रहीत हैंडल को रिलीज़ करता है
-
सभी SET विकल्पों को डिफ़ॉल्ट मानों पर रीसेट करता है
-
@@ rowcount मान को रीसेट करता है
-
@@ पहचान मान को रीसेट करता है
-
dbcc ट्रेसन ()
. का उपयोग करके किसी भी सत्र स्तर ट्रेस विकल्प को रीसेट करता है -
CONTEXT_INFO को
NULL
. पर रीसेट करता है SQL सर्वर 2005 और नए में <उप>[मूल लेख का हिस्सा नहीं]
sp_reset_connection रीसेट नहीं होगा:
-
सुरक्षा संदर्भ, यही कारण है कि कनेक्शन पूलिंग सटीक कनेक्शन स्ट्रिंग के आधार पर कनेक्शन से मेल खाता है
-
अनुप्रयोग भूमिकाएँ sp_setapprole का उपयोग करके दर्ज की गईं, क्योंकि अनुप्रयोग भूमिकाएँ SQL Server 2005 से पहले बिल्कुल भी पूर्ववत नहीं की जा सकीं। SQL Server 2005 में प्रारंभ करके, अनुप्रयोग भूमिकाओं को पूर्ववत किया जा सकता है, लेकिन केवल अतिरिक्त जानकारी के साथ जो सत्र का हिस्सा नहीं है। कनेक्शन बंद करने से पहले, एप्लिकेशन भूमिकाओं को "कुकी" मान का उपयोग करके sp_unsetapprole के माध्यम से मैन्युअल रूप से वापस करने की आवश्यकता होती है, जिसे
sp_setapprole
पर कैप्चर किया जाता है। निष्पादित किया जाता है।
नोट:मैं यहां सूची को शामिल कर रहा हूं क्योंकि मैं नहीं चाहता कि यह हमेशा क्षणिक वेब में खो जाए।