连接池--sp_reset_connection
2014-02-25 17:39
176 查看
--当客户端使用连接池访问数据库时,客户端使用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
--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
相关文章推荐
- 如何把一个软件系统搞成saas
- 主线程
- ActivityNotFoundException
- javaSE-面向对象-静态代码块
- Struts2 url中包含感叹号实现动态方法调用
- 计算机操作系统(二)之进程管理
- 枚举的各种形式的使用例子
- JAVA array,map 转 json 字符串
- Android的sample程序在哪里
- Unable to resolve target 'android-15'解决方法
- zoj 3204 Connect them kruskal
- 软件工程(学科)简介
- ActivityNotFoundException
- 毅
- real210移植记录-支持eMMC,增加菜单操作
- 一整套偏方,亲们有对应症状可略为参考
- office2007word文档设置多级目录
- 独立思考者的思考模型----智商160以上的人都应该学会的
- UML用例图
- TortoiseSVN的简单使用