使用ADO.NET访问SQLSERVER注意连接池的大小设定收藏
来源:互联网 发布:看美剧的电视软件 编辑:程序博客网 时间:2024/06/05 18:13
在visual studio 2005用treeview开发一个树状结构的分类表,其数据存放在数据库中,采用的是递归函数进行调用,结果发生错误,经过查看发现连接数据库字符串中,无意设定了连接池的大小MinPoolSize =4 maxpoolsize=4,如此设置导致递归连接访问数据库四次就发生错误。
另外要注意的是要学会使用using语句释放资源,这样可以减少连接池的次数。
查看MSDN文档发现如下解释:
连接到数据库服务器通常由几个需要很长时间的步骤组成。必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前事务中登记,等等。 实际上,大多数应用程序仅使用一个或几个不同的连接配置。这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭。为了使打开的连接成本最低,ADO.NET 使用称为连接池的优化方法。
连接池减少新连接需要打开的次数。池进程保持物理连接的所有权。通过为每个给定的连接配置保留一组活动连接来管理连接。只要用户在连接上调用 Open,池进程就会检查池中是否有可用的连接。如果某个池连接可用,会将该连接返回给调用者,而不是打开新连接。应用程序在该连接上调用 Close 时,池进程会将连接返回到活动连接池集中,而不是真正关闭连接。连接返回到池中之后,即可在下一个 Open 调用中重复使用。
只有配置相同的连接可以建立池连接。ADO.NET 同时保留多个池,每个配置一个池。连接由连接字符串以及 Windows 标识(在使用集成的安全性时)分为多个池。池连接可以大大提高应用程序的性能和可缩放性。默认情况下,ADO.NET 中启用连接池。除非显式禁用,否则,连接在应用程序中打开和关闭时,池进程将对连接进行优化。还可以提供几个连接字符串修饰符来控制连接池的行为
连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接根据需要添加到池中,但是不能超过指定的最大池大小(默认值为 100)。连接在关闭或断开时释放回池中。
在请求 SqlConnection 对象时,如果存在可用的连接,将从池中获取该对象。连接要可用,必须未使用,具有匹配的事务上下文或未与任何事务上下文关联,并且具有与服务器的有效链接。
连接池进程通过在连接释放回池中时重新分配连接,来满足这些连接请求。如果已达到最大池大小且不存在可用的连接,则该请求将会排队。然后,池进程尝试重新建立任何连接,直到到达超时时间(默认值为 15 秒)。如果池进程在连接超时之前无法满足请求,将引发异常。
- 使用ADO.NET访问SQLSERVER注意连接池的大小设定收藏
- 使用ADO.NET访问SQLSERVER注意连接池的大小设定
- ADO.NET SqlServer 连接池是默认的
- c++使用ado连接 sqlserver使用注意点
- ADO.NET连接SQLServer数据库
- vc 使用ADO连接 sqlserver
- C++使用ADO连接SQLSERVER
- MFC使用ADO连接SqlServer
- MFC使用ado连接SQLserver
- Ado.net的连接池
- ADO.net 的连接池
- ADO.Net基础/连接SQLServer/ExecuteNoQuery()/ExecuteScalar
- ADO.NET:使用ADO.NET连接文本文件
- ADO.NET:使用ADO.NET连接文本文件
- ADO.NET之使用连接池技术
- ado.net访问SQL SERVER08的连接字符串
- ADO.NET的连接
- ADO连接SQLServer数据库的连接字
- hge引擎应用(一)
- 谨以献给1980~1990出生的人(一)---很怀念很怀念
- 通过IDE开发基于web的XFire(WebService)
- SQL数据库——锁的概述收藏
- SqlConnection的连接池
- 使用ADO.NET访问SQLSERVER注意连接池的大小设定收藏
- 成大事[摘自台历]
- VC无闪烁刷屏技术的实现
- sql server 2000更改数据库名称 、更改逻辑文件名
- 15个传统提升流量的方法
- 新建连接向导中的拨号调制解调器或 PPPoE 选项不可用(按钮显示为灰色)
- Google SEO优化技术的12个要点总结
- 祝贺6万亿财政收入
- 拷贝构造函数:默认拷贝(浅拷贝)、深拷贝构造函数