連接池--sp_reset_connection


--當客戶端使用連接池訪問數據庫時,客戶端使用OPEN來重用數據庫連接,使用CLOSE來斷開數據庫連接,但並不物理上新建和斷開連接,因此可以提高程序運行速度並降低性能損耗。

--ADO和ADO.NET程序會默認啟用連接池
--如果一個連接未提交或回滾事務便在客戶端顯示close,則事務會被一直保持到該連接被重用時被釋放.
--第一次建立的連接不會調用sp_reset_connection
 
--sp_reset_connection會在SQLSERVER里做些什么?
--1、清除連接現有所有內部數據結構。包括:
--清除所有openxml打開的document句柄
--關閉所有的游標(cursor)
--釋放所有SQL語句句柄
--清除所有臨時對象(臨時表等)
--釋放連接持有的所有鎖
--清除緩存的所有安全上下文信息(security context)
 
--2、重置連接設置。包括:
--重置連接的SQL Trace標志值
--重置所有"SET" 選項值(SET IMPLICIT_TRANSACTIONS ON 等)
--重置連接的統計信息值
 
 
--3、回滾所有SQLSERVER事務
--需要說明的是,如果連接當前參與了一個由客戶端發起的分布式事務,這個分布式事務不會受到影響。在SQL里的事務還會被保留
 
--4、把當前數據庫切換到用戶默認數據庫
 
--5、SQLSERVER會再次檢查當前用戶是否有權做數據庫連接。如果這個權限已被移除SQLSERVER會中斷這個物理連接(這樣防止一個已經被取消訪問權的用戶還能長時間使用數據庫的問題)
 
 
--參考:http://www.cnblogs.com/lyhabc/articles/3222241.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM