连接池--sp_reset_connection
2024-10-21 11:56:51
--当客户端使用连接池访问数据库时,客户端使用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
最新文章
- Microsoft Visual SourceSafe 6.0 无法关联项目
- Angular.js 的初步认识
- RPM -U 升级机制探索
- shell笔记-local、export用法 、declare、set
- SQLServer2005利用维护计划自动备份数据库
- 室内净化ThinkPHP复习
- 查看JVM内存
- Objective-C中的@property
- ntpd和ntpdate的区别
- IOS开发之UITabBarController与UINavigationController混合使用
- 数据库无法连接JDBC
- 定时任务调度工作(学习记录 三)timer其他重要函数
- mac 使用iTerm2快捷登录远程服务器
- Python 的经典设计格言,格言来源于 Python 但不限于 Python
- RobotFrameWork接口项目分层及通用控制方式
- 从MySQL Bug#67718浅谈B+树索引的分裂优化(转)
- Java 堆外内存
- Vivado使用技巧(1)
- 按esc键 关闭模态框
- elasticsearch golang的sdk使用