当前位置:Gxlcms > 数据库问题 > C# ADO.net 数据库连接池

C# ADO.net 数据库连接池

时间:2021-07-01 10:21:17 帮助过:2人阅读

,主要包括四个重要的属性:

  • Connection Timeout:连接请求等待超时时间。默认为15秒,单位为秒。
  • Max Pool Size: 连接池中最大连接数。默认为100。
  • Min Pool Size: 连接池中最小连接数。默认为0。
  • Pooling: 是否启用连接池。ADO.NET默认是启用连接池的,因此,你需要手动设置Pooling=false来禁用连接池。

我发现了下面这篇文章:

http://www.cnblogs.com/liuhaorain/archive/2012/02/19/2353110.html

另外,因为我们用了Mysql 数据库,类库不是微软提供的,所以我担心mysql 没有实现连接池,所以自己测试了一下,结果很明显,mysql 也同样支持。

附测试代码和结果:

 class Program
    {
        static void Main(string[] args)
        {
            MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["mysql"].ConnectionString);
           

            DateTime startTime = DateTime.Now;
            Console.WriteLine(startTime.ToLongTimeString());

            for (int i = 0; i < 100; i++)
            {
                conn.Open();
                conn.Close();
            }

          

            DateTime endTime = DateTime.Now;
            Console.WriteLine(endTime.ToLongTimeString());
            Console.WriteLine("连接100次,使用时间(ms):"+(endTime-startTime).ToString());

            Console.ReadLine();
        }
    }

配置文件:

启用连接池:(默认的)

<add name="mysql" connectionString="server = 192.168.2.101; user id = root; password = password; database = Test; Pooling=true;"/>

不启用连接池:

<add name="mysql" connectionString="server = 192.168.2.101; user id = root; password = password; database = Test; Pooling=false;"/>

每种配置我都运行了三遍:

使用连接池的时候,执行100次时间为0.477秒

不使用连接池的时候,时间是6.56 秒,相差极大。

总之,在Ado.net 里,不需要自己实现连接池,只要设置好参数就可以了。

 

C# ADO.net 数据库连接池

标签:

人气教程排行