zoukankan      html  css  js  c++  java
  • ado.net连接池效果

    //启用连接池
                string constr = "Data Sourse=zxtiger; Initial Catalog=itcastcn;Integrated Security=True";
                Stopwatch watch = new Stopwatch();
                watch.Start();
                for (int i = 0; i < 2000; i++)
                {
                    using (SqlConnection con = new SqlConnection(constr))
                    {
                        con.Open();
                        con.Close();
                    }
                }
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
                Console.ReadKey();
    //启用连接池后,只执行一次连接操作
    //禁用连接池
                string constr = "Data Sourse=zxtiger; Initial Catalog=itcastcn;Integrated Security=True;Pooling=false";
                Stopwatch watch = new Stopwatch();
                watch.Start();
                for (int i = 0; i < 2000; i++)
                {
                    using (SqlConnection con = new SqlConnection(constr))
                    {
                        con.Open();
                        con.Close();
                    }
                }
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
                Console.ReadKey();
    

     连接池默认是打开的,当连接池被禁用后

    //00:00:00.1383385
    //00:00:03.9974913

    前后相差29被

    所谓的连接池,就是一个与连接对象Connection相关的集合,这不只是简单的集合,而是有一定的机制在内部。我们做开发时,可能建立Connection连接对象,关闭连接对象,有时候还调用Dispose来释放连接。下次再用时,便重新实例化一个连接。但在池中的连接不随连接对象的Close或Dispose而释放。如果下次重新建立连接,连接字符串与前一次完全一模一样,则连接池就会把上次可用的连接对象赋给连接去用。如果两个连接字符串有一点不一样,即使在某一个地方多一个空格,连接池也不会以为是相同的连接,这点微软可能在内部只直接去比较两个字符串了,而不是比较连接数据库字符串的键值互相匹配。

    连接池的好处就是保留连接对象,防止下次重头再来实例化一个连接对象。

    由于每次正常连接数据库至少执行3个操作(1.登陆数据库服务器2.执行操作3.注销用户),所以每次通过Connection向数据库服务器申请一个连接都比较耗时【ado.net默认启用了连接池】

  • 相关阅读:
    转帖:解决从9.2.0.1升级到9.2.0.7出现的错误
    最近在公司内部作了一次WCF的培训
    SourceSafe的命令行
    公司再过一两个月就要关门了
    MimeType
    ORACLE 10G 如何使用超过1.7G的内存
    切换网卡
    热键
    Oracle数据库碎片整理
    Hydra安装与使用
  • 原文地址:https://www.cnblogs.com/wohaoxue/p/4160446.html
Copyright © 2011-2022 走看看