SQL Server连接池基本原理
SQL Server连接池基本原理
1. 何时创建连接池? 当第一个连接请求到来时创建连接池;连接池的建立由数据库连接的连接字符创来决定。每一个连接池都与一个不同的连接字符串相关。当一个新的连接请求到来时如果连接字符串和连接池使用的字符串相同,就从连接池取出一个连接;如果不相同,就新建一个连接池。 2. 何时关闭连接池? 当连接池中的所有连接都已经关闭时关闭连接池。 3. 当连接池中的连接都已经用完,而有新的连接请求到来时会发生什么? 当连接池已经达到它的最大连接数目时,有新的连接请求到来时,新的连接请求将放置到连接队列中。当有连接释放给连接池时,连接池将新释放的连接分配给在队列中排队的连接请求。你可以调用close和dispose将连接归还给连接池。 4. 我应该如何允许连接池? 对于应用程序而言,默认为允许连接池。(这意味着你可以不必为这件事情做任何的事情)当然,如果你可以在SQLConnection对象的连接字符串中加进Pooling=true;确保你的应用程序允许连接池的使用。 SqlConnection的连接池 前段时间尝试连接数据库,然后调用sqlConnection.Close(), 最后试图删除该数据库,结果提示数据库正在使用,查看数据库进程情况,发现是自己在用该数据库,突然想到.Net支持连接池技术。sqlConnection.Close()和sqlConnection.Dispose()并不会关掉数据库的物理连接(SQL连接池中的连接,只是设为sleeping状态)。查看MSDN,结论如下: 当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。 连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接将根据需要添加到池中,直至达到最大池大小。对 Connection 调用 Close 或 Dispose 时,连接被释放回池中,而跟数据库的物理连接并没有断掉。连接池一旦创建,直到活动进程终止时才会被毁坏。非活动或空池的维护只需要最少的系统开销。 连接字符串中,有Pooling这个关键字,默认情况下,其值为true,即支持连接池技术。如果不想支持连接池技术,可以显式地将其赋值为false.另外Max Pool Size, Min Pool Size为池允许的最大和最小连接数。 建议大家: 1、能够将使用后的连接及时关闭(Close,Dispose),这样有效的减小了无用的连接,同时也避免了以上的情况. 2、避免无权限的用户登录上来误操作的发生. 3、相同数据库的连接字符串保持一致,比如ConnectionString中分号隔开的参数顺序不一样,或者多余的空格。 扫一扫加微信
参考文档:
SQLServer连接配置工具(配置保存到ini文件或系统注册表) C/S框架后台数据更新模型之ORM自动生成SQL基本原理 拔掉网线,无法连接本机SQLSERVER数据库 SQL连接池完整测试报告 使用T-SQL语句配置SQL Server连接池允许的并发用户连接的最大数目 SQL连接字符串设置连接池 运行开发框架SQL连接池变动情况测试报告 Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理 SQLServer连接字符串连接池详解,Pooling=True/False区别 提交GIT服务器失败,提示Git failed with a fatal error.Permission denied,.vs/Server/sqlite3/db.lock SqlServer配置链接服务器LINKSERVER:ODBC连接MySQL数据库 C#源码-SQLServer数据库生成修改工具-源码下载 C#源码-[CMS程序]SiteServer CMS 3.3.7 SQL版_siteservercmssql-源码下载 C#源码-[CMS程序]SiteServer CMS v2.6.0 SQL版_siteservercmssql-源码下载 [人才房产]青岛房产网 2008 (C#.net+Sql server)-源码下载
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |