Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर:पूल किए गए कनेक्शन में अलगाव स्तर लीक

कनेक्शन पूल कनेक्शन को रिसाइकिल करने से पहले sp_resetconnection को कॉल करता है। लेन-देन अलगाव स्तर को रीसेट करना उन चीजों की सूची में नहीं है जो sp_resetconnection करता है। यह समझाएगा कि क्यों "क्रमबद्ध" पूल किए गए कनेक्शनों में लीक हो जाता है।

मुझे लगता है कि आप प्रत्येक क्वेरी को यह सुनिश्चित करके शुरू कर सकते हैं कि यह सही आइसोलेशन स्तर पर है:

if not exists (
              select  * 
              from    sys.dm_exec_sessions 
              where   session_id = @@SPID 
                      and transaction_isolation_level = 2
              )
    set transaction isolation level read committed

दूसरा विकल्प:किसी भिन्न कनेक्शन स्ट्रिंग वाले कनेक्शन कनेक्शन पूल साझा नहीं करते हैं। इसलिए यदि आप "क्रमबद्ध करने योग्य" प्रश्नों के लिए किसी अन्य कनेक्शन स्ट्रिंग का उपयोग करते हैं, तो वे "पढ़ने के लिए प्रतिबद्ध" प्रश्नों के साथ एक पूल साझा नहीं करेंगे। कनेक्शन स्ट्रिंग को बदलने का एक आसान तरीका एक अलग लॉगिन का उपयोग करना है। आप Persist Security Info=False; . जैसे यादृच्छिक विकल्प भी जोड़ सकते हैं ।

अंत में, आप यह सुनिश्चित कर सकते हैं कि प्रत्येक "धारावाहिक" क्वेरी लौटने से पहले अलगाव स्तर को रीसेट कर दे। यदि कोई "क्रमबद्ध करने योग्य" क्वेरी पूरी नहीं हो पाती है, तो आप दूषित कनेक्शन को पूल से बाहर निकालने के लिए कनेक्शन पूल को साफ़ कर सकते हैं:

SqlConnection.ClearPool(yourSqlConnection);

यह संभावित रूप से महंगा है, लेकिन असफल प्रश्न दुर्लभ हैं, इसलिए आपको ClearPool() पर कॉल करने की आवश्यकता नहीं है अक्सर।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गंभीर त्रुटि:C:\xampp\htdocs में अपरिभाषित फ़ंक्शन sqlsrv_connect () पर कॉल करें

  2. SQL सर्वर में एक साधारण मर्ज स्टेटमेंट का उदाहरण

  3. SQL सर्वर 2016 क्वेरी स्टोर GUI की खोज करना

  4. T-SQL का उपयोग करके SQL सर्वर में डेटाबेस के संगतता स्तर की जाँच कैसे करें

  5. SQL सर्वर प्रबंधन स्टूडियो (SSMS) से DDL स्क्रिप्ट कैसे बनाएं (बनाएं) - SQL सर्वर / TSQL ट्यूटोरियल भाग 17