11Aug SQL Server,.Net 数据库连接池性能测试 Aug 11, 2020 By 余钊 2092 Views 0 Comments 今天我来比较以下使用数据库连接池和不使用数据库连接池的效率问题。 创建两个数据库连接字符串,一个不打开连接池,一个打开连接池,设置连接池最大数量为10000代码如下: private static string connStr_nopool = "Data source=.;Initial Catalog=Test;User ID=sa;Password=testtest;Pooling=false"; private static string connStr = "Data source=.;Initial Catalog=Test;User ID=sa;Password=testtest;Pooling=true;Max Pool Size=10000; Min Pool Size=5"; 然后测试反复打开连接5000次。 int connectTimes = 5000; //不用连接池 DateTime d1 = DateTime.Now; for (int i = 1; i <= connectTimes; i++) { SqlConnection conn = new SqlConnection(connStr_nopool); conn.Open(); conn.Close(); } Console.WriteLine("不用连接池 打开连接耗时" + (DateTime.Now-d1).TotalMilliseconds); //用连接池 DateTime d2 = DateTime.Now; for (int i = 1; i <= connectTimes; i++) { SqlConnection conn = new SqlConnection(connStr); conn.Open(); conn.Close(); } Console.WriteLine("用连接池 打开连接耗时" + (DateTime.Now - d2).TotalMilliseconds); 测试结果如下: 看到这个结果,谁的性能快,你懂的。 原理:如果不使用连接池,那么每次打开连接都要和数据库服务器进行TCP三次握手。使用连接池,连接不会断开,只是保存在连接池中以供下次使用,省去了连接的时间。 使用连接池和不使用连接池的区别:不使用连接池速度慢,但是不占用内存。使用连接池要占用内存,但是速度快。就是空间换时间。 转载请注明出处: http://bluesd7.com/蓝影闪电的随笔/ContentId/133/SQL-Server,-Net-数据库连接池性能测试 标签: SQL Server, 连接池, .Net 数据库 分类: .Net, C#, SQL Server, SQL 数据库, 数据库, 性能优化, 原创