深入研究 SQL Server 連線池中 sp_reset_connection 的功能
SQL Server 使用連線池來有效管理資料庫來有效管理資料庫。這個機制的核心是預存程序 sp_reset_connection,它在重複使用池中的連接時被呼叫。其主要目標是重置連線的狀態以確保為後續使用做好準備。
全面重置
sp_reset_connection 重置連接的各個方面,包括:
- 錯誤狀態和數字
- 執行上下文(EC)
- 未完成的I/O操作
- 保留的伺服器緩衝區
- 鎖定的緩衝區資源
- 連接分配的記憶體
- 臨時表
- 全域遊標
- 臨時表
- 全域遊標
- 開啟SQL-XML句柄與相關工作紙
- 系統與使用者表
- 臨時物件
- 開放事務
- 分散式交易登記
- 共享資料庫鎖定
- 已取得鎖定
- 句柄
- SET選項
- @@rowcount
@@identity
會話級跟踪options
排除
- 但是,sp_reset_connection特別避免重置:
-
- 安全上下文,這對於基於以下內容匹配連接至關重要連接字串
應用程式角色,因為它們不能已恢復
事務隔離等級
- 實際影響
-
- 透過sp_setapprole 建立的應用程式角色仍然有效。
事務必須由應用程式明確管理,如 sp_reset_connection不會重置它們。 避免依賴在連線重用中保留的 SET 選項,因為它們會重設為預設值。
以上是sp_reset_connection 如何重置 SQL Server 連線以及它不會影響什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!