请问这个数据库的 连接/关闭 操作是否会影响效率?- 怎样提高效率?

.Net技术 码拜 6年前 (2015-05-10) 315次浏览 0个评论
 

用户每次打开一个asp.net页面,页面会建立一个数据库连接,然后根据这个页面上的用户ID来查询数据库的内容,待查询完毕则关闭这个链接 (DB conneciton)。最高时期同时在线的用户量达到10万个。

请问这个数据库的 连接/关闭 操作是否会影响效率?- 怎样提高效率?

10分
如果不是实时更新可以考虑no sql 速度应该会快一些。
重新提问:

非常感谢,你回答了我第一个问题,我想你的意思是可以的,因为连接池在ado.net里建立,和DB1主连接没关系; DB2同样可以建立连接池。

第二个问题我没有说人为编程作甚么,只是用户达到10万,是否每个人连接的时候都需要建立一个连接呢?还是可以重复使用其他人的连接 (在ado.net的连接池内)?

如果每个人都需要自己的连接,那么会不会出现连接池“过满”的现象,影响系速度呢?

10分
.net有连接池,如果你的连接字符串完全一致的话,问题不大,他会从池中取
5分
关于sqlserver的连接数,参考
http://www.cnblogs.com/wlb/archive/2012/04/08/2437617.html
多谢,那片文章说:微软在MSDN上对最大连接数的定义是:“默认是0,代表不限制,但最大连接数是32767”?

那就是说10万用户无法同时连接了?

那就是说10万用户无法同时连接了?
5分
正好借地问个问题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection cn=new SqlConnection("data source=USER-20150226RI;uid=sa;pwd=123456;initial catalog=test");
            cn.Open();
            cn.Close();
            Console.Read();
        }
    }
}

很简单的打开关闭连接,但是通过SQL profiler或者sp_who观察,当代码运行到(Read())这里时已经关闭了SqlConnection,但是数据库的活动连接还是存在,仅当程序结束后才会消失,那么问题来了,如果我有10w或者更多的用户同时在运行程序,那数据库活动连接不是一直保持很多?

好问题,顶!
10分
10万用户同时连接的话,一个sql server数据库不够的,得花钱买硬件哈。

另外考虑把经常查询的东西用缓存。

5分
IIS 是有一个并发上限的
IIS 是有一个并发上限的 – 请问是多少?
5分
一般一台服务器的并发上限一般也就几千而已

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请问这个数据库的 连接/关闭 操作是否会影响效率?- 怎样提高效率?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!