当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

.net如何连接数据库连接池?总结很全面速看!ado.net连接池

ADO.net连接池

由来:建立数据库连接是一项耗时的(耗时的)消耗力(资源消耗),连接池可以在一定程度上解决这个问题,提高应用程序性能。

ado.net 连接池原理:

一个连接池对应一个连接字符串,当有连接请求时,如果连接池中有空闲的连接字符串就可以直接使用,如果没有再进行创建新的连接池。

ado.net连接池是什么?

ado.net连接池是Data Provider提供的一个机制,是一个容器:它存放了一定数量的与数据库服务器的物理连接。

为什么要用ado.net连接池?

转换资源池设计模式,提供一套高效的连接分配、使用策略,最终目标是实现连接的高效、安全的复用,极大的提升系统的性能。简明来说分以下四点:

  1. 资源复用
  2. 获得更快的系统响应速度,提升系统性能。
  3. 新的资源分配手段,通过限制,提升均衡性,避免某一应用独占所有数据库资源。
  4. 统一的连接管理,避免数据库连接泄漏

ado.net连接池四大属性:

  1. Connection Timeout:连接请求等待超时时间。默认为15秒,单位为秒。
  2. Max Pool Size: 连接池中最大连接数。默认为100。
  3. Min Pool Size: 连接池中最小连接数。默认为0。
  4. Pooling: 是否启用连接池。ADO.NET默认是启用连接池的,因此,你需要手动设置Pooling=false来禁用连接池。
SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder(); connS = . ; //或者转义 @".SQLEXPRESS"; connS = "TestSchool"; connS = true; connS = true; //开启连接池 connS = 0; //设置最小连接数为0 connS = 50; //设置最大连接数为50 connS = 10; //设置超时时间为10秒 using( SqlConnection conn = new SqlConnection)) { ;//todo }

ado.net连接池怎么用?

测量使用连接池时,程序响应的时间。

private void btnPool_Click(object sender, EventArgs e) { //pooling=false不使用连接池 string connStr = "Data Source=.;Initial Catalog=TestSchool;Integrated Security=True; pooling=true"; //秒表 Stopwatch sw = new Stopwatch(); (); for (int i = 0; i < 1000; i++) { SqlConnection conn = new SqlConnection(connStr); string sql = "select * from grade"; conn.Open(); SqlCommand comm = new SqlCommand(sql,conn); comm.ExecuteNonQuery(); conn.Close(); } (); Me()); }

用操作系统的性能监视器来比较使用连接池与否的好处:

SqlConnection con = new SqlConnection("server = .; database =TestSchool;pooling = true;trusted_connection = true"); //pooling = false; for(int i = 0;i < 10;i++) { try { con.Open(); Sy(1000); } catch(Exception e){Con);} finally { con.Close(); Sy(1000); } Con() }

ado.net连接池异常与处理方法

当用户打开一个连接而没有正确或者及时的关闭时,经常会引发“连接泄露”问题。泄露的连接,会一直保持打开状态,直到调用Dispose方法,垃圾回收器(GC)才关闭和释放连接。

ADO.NET需要手动的关闭使用完的连接。当超出作用域时,并非自动关闭连接,而且释放的只是连接对象而非连接资源。因此,使用完的连接应当尽快的正确的关闭和释放。

using System; using Sy; using Sy; using Sy; using Sy; using Sy.SqlClient; namespace 连接池 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder(); connS = .; connS = TestSchool; connS = true; connS = 10;//设置最大连接池为10 connS = 1;//设置超时时间为1秒 SqlConnection conn = null; for (int i = 1; i <= 100; ++i) { conn = new SqlConnection); try { conn.Open(); Con("Connection{0} is linked",i); } catch(Exception ex) { Con("n异常信息:n{0}",ex.Message); break; } } Con(); } } }

1.《.net如何连接数据库连接池?总结很全面速看!ado.net连接池》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《.net如何连接数据库连接池?总结很全面速看!ado.net连接池》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2086654.html

上一篇

关于0.1米如何看,你需要知道这些高个子不如矮个子长寿,是真是假?长寿的人,3个特征很明显

下一篇

如何吃鸡不卡?我来告诉你答案玩绝地求生卡顿三步一回头?教你一键稳定帧数不回档!

.net如何连接数据库连接池?终于找到答案了SQLServer高级连接-ADO.NET调用存储过程连接池

.net如何连接数据库连接池?终于找到答案了SQLServer高级连接-ADO.NET调用存储过程连接池

.net如何连接数据库连接池相关介绍,网站防火墙 网站防火墙 您的请求带有不合法参数,已被网站管理员设置拦截! 可能原因:您提交的内容包含危险的攻击请求 如何解决: 1)检查提交内容; 2)如网站托管,请联系空间提供商; 3)普通网站访客...