asp.net高效数据库连接代码分析

作者:袖梨 2022-06-25

这是一段正常的程序,这段程序放在一个页面里,无论你怎么刷或者多少人同时请求这个页面,待请求处理结束后,通过sp_who查看到的,还是那一个。知道这为什么叫正常的程序了吧,符合正常推理

using (sqldatareader reader = maticsoft.dbutility.dbhelpersql.executereader("select top 1 * from protuct order by id desc"))
           {
               while (reader.read())
               {
                   response.write(reader["name"].tostring());
               }
           }
using (sqldatareader reader2 = maticsoft.dbutility.dbhelpersql.executereader("select top 1 * from users order by userid desc"))
           {
               while (reader2.read())
               {
                   response.write(reader2["username"].tostring());
               }
           }

看一下我们有些朋友会经常用的连接数据代码

data source=.;initial catalog=test;persist security info=true;user id=testuser;password=123456;min pool size=10;max pool size=150;connection lifetime=10

min pool size=10;max pool size=150;connection lifetime=10

数据库教程连接池 了,默认是启用的,以上的属性就是配置这个连接池的。这也就意味着,当你的页面发送数据库请求的时候,不一定就非要创建数据库连接,而可能是从已存在连接池里,激活一个的连接来处理你的请求的;同样,当你代码中调用close显式关闭数据库连接的时候,也不一定就是真的关闭数据库连接了,如果当前连接池中没有满足min pool size要求的连接时,它只是返回到连接池,等待下一个命令来激活它


sp_who 'testusers'    // testusers是你建立连接时指定的用户名

看看连接数,现在明白了吧。

相关文章

精彩推荐