杂项(五)
作者:互联网
借鉴自:https://www.jianshu.com/p/2fff42a9dfcf
https://baike.baidu.com/item/数据库连接池/1518538
https://www.cnblogs.com/supersnowyao/p/8655886.html
https://blog.csdn.net/crankz/article/details/82874158
https://blog.csdn.net/aojiancc2/article/details/23259807
https://www.cnblogs.com/jiahaohk/articles/1999304.html
https://blog.csdn.net/u014677855/article/details/81698339
https://www.cnblogs.com/liuhaorain/archive/2012/02/19/2353110.html
1,QPS,TPS,吞吐量
TPS: Transactions Per Second(事务处理数/秒),指服务器每秒处理的事务(包括一条消息入和一条消息出,加上一次用户数据库访问)次数
QPS: Queries Per Second(查询量/秒),是服务器每秒能够处理的查询次数
一个系统的吞吐量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间QPS(TPS):每秒钟request/事务 数量并发数: 系统同时处理的request/事务数响应时间: 一般取平均响应时间
2,ado.net中的数据库连接池
数据库连接池 是ado.net对数据库连接的一种优化手段。数据库连接池,也即存储数据库连接的缓冲池,负责分配、管理和释放数据库连接。
很多时候我们都会说连接和断开一个数据库连接的开销很大,反复的连接和断开数据库将对系统的性能产生严重影响,所以我们选择将数据库连接放在连接池中,让连接池有选择行的保留程序释放的数据库连接,以便以后使用。
在c#应用程序中,我们可以认为 使用相同的 数据库连接字符串的同一程序集中 使用的是同一个数据库连接池。注意是同一程序集。
- 最小连接数
是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。 - 最大连接数
是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。 - 最小连接数与最大连接数差距
最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
设置最大最小连接数的语法 大致如下:
SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
connStr.DataSource = @".\SQLEXPRESS";
connStr.InitialCatalog = "master";
connStr.IntegratedSecurity = true;
connStr.Pooling = true; //开启连接池
connStr.MinPoolSize = 0; //设置最小连接数为0
connStr.MaxPoolSize = 50; //设置最大连接数为50
connStr.ConnectTimeout = 10; //设置超时时间为10秒
using( SqlConnection conn = new SqlConnection(connStr.ConnectionString))
{
;//todo
}
缺点: 数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库(这意味着资源的浪费)。
标签:数据库,连接数,连接,https,connStr,杂项,连接池 来源: https://blog.csdn.net/qq_37326058/article/details/88296751