ADO.NET之连接池技术的使用详解

 更新时间:2021年9月22日 10:15  点击:2120

连接到数据库服务器通常需要一定的时间,且服务器也需要一定的资源来处理连接。Web应用程序有时处理成千上万的连接,需要相当多的资源来处理连接。ADO.NET具有连接池的特性,连接池的功能是保留一定数量的连接,当用户使用相同的连接字符串再次连接服务器时,ASO.NET将使用连接池中的连接而不用重新发起一次连接过程。当调用Close方法关闭连接时,ADO.NET将使用连接池中的连接而不用重新发起一次连接过程。当调用Close方法关闭连接时,连接将会返回到连接池中,下次再次调用Open方法时,将从连接池中取出一个连接使用。

数据库连接字符串默认为启用连接池。使用连接池可以在连接字符串中用pooling=true/false来控制,设置连接池最大值和最小值可以使用Max Pool Size=200;Min Pool Size=1; 进行控制。

下边新建一个控制台应用程序来演示连接池的使用,其实我们仅仅是在Connection String中使用pooling=false/true来控制,默认是使用连接池技术的,也就是pooling=true:

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        private static readonly string connectionString1 = @"Data Source=.;Initial Catalog=Northwind;Integrated Security=True;pooling=true;";//默认值即为true,所以可省略pooling=true
        private static readonly string connectionString2 = @"Data Source=.;Initial Catalog=Northwind;Integrated Security=True;pooling=false;";
        static void Main(string[] args)
        {
            long startTicks1 = DateTime.Now.Ticks;
            using (SqlConnection conn1 = new SqlConnection(connectionString1))
            {
                for (int i = 0; i < 100; i++)
                {
                    conn1.Open();
                    conn1.Close();
                }
            }
            long endTicks1 = DateTime.Now.Ticks;
            long usedTicks1 = endTicks1 - startTicks1;
            Console.WriteLine("Used time: " + usedTicks1);

            long startTicks2 = DateTime.Now.Ticks;
            using (SqlConnection conn2 = new SqlConnection(connectionString2))
            {
                for (int i = 0; i < 100; i++)
                {
                    conn2.Open();
                    conn2.Close();
                }
            }
            long endTicks2 = DateTime.Now.Ticks;
            long usedTicks2 = endTicks2 - startTicks2;
            Console.WriteLine("Used time: " + usedTicks2);

        }

 

    }

}


输出结果:
复制代码 代码如下:

pooling=true: 710040
pooling=false: 3100177

[!--infotagslink--]

相关文章

  • C#使用Ado.Net更新和添加数据到Excel表格的方法

    这篇文章主要介绍了C#使用Ado.Net更新和添加数据到Excel表格的方法,较为详细的分析了OLEDB的原理与使用技巧,可实现较为方便的操作Excel数据,需要的朋友可以参考下...2020-06-25
  • ADO.NET基础知识汇总

    程序和数据库交互,要通过ADO.NET进行;通过ADO.NET就能在数据库中执行SQL了 。ADO.NET中提供了对不同数据库的统一操作接口(ODBC) 。另外还有一种操作数据库的接口是JDBC...2021-09-22
  • C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例

    这篇文章主要介绍了C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息,结合实例形式总结分析了C#针对SQLServer数据库存储过程及参数信息的各种常见操作技巧,需要的朋友可以参考下...2020-06-25
  • ADO.NET之连接池技术的使用详解

    本篇文章是对连接池技术的使用进行了详细的分析介绍,需要的朋友参考下...2021-09-22
  • ADO.NET获取数据(DataSet)同时获取表的架构实例

    下面小编就为大家分享一篇ADO.NET获取数据(DataSet)同时获取表的架构实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-09-22
  • 当年学习ADO.NET的笔记

    那些年学习了ASP.NET后又开始学习ASP.NET的新知识,ADO.NET用于访问数据库,一般可以分为连接模式和非连接模式...2021-09-22
  • ASP.NET中实现把Json数据转换为ADO.NET DataSet对象

    这篇文章主要介绍了ASP.NET中实现把Json数据转换为ADO.NET DataSet对象,本文讲解设计及实现方法,相关代码托管到GITHUB,需要的朋友可以参考下...2021-09-22
  • C#使用ADO.Net部件来访问Access数据库的方法

    数据库的访问是所有编程语言中最重要的部分,C#提供了ADO.Net部件用于对数据库进行访问。本文从最简单易用的微软Access数据库入手讨论在C#中对数据库的访问。...2020-06-25
  • C#  ADO.NET 离线查询的实现示例

    这篇文章主要介绍了C# ADO.NET 离线查询的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 浅谈ADO.NET数据库脚本

    最近跟着公司做了一个小项目,虽然不是很好,却也有点心得,在此和大家分享一下,希望高手能不吝赐教啊。。。还有很多得更加努力学习啊...2021-09-22
  • ADO.NET实现对SQL Server数据库的增删改查示例

    本篇文章主要介绍了ADO.NET实现对SQL Server数据库的增删改查示例,非常具有实用价值,需要的朋友可以参考下。...2021-09-22
  • C#使用Ado.net读取Excel表的方法

    这篇文章主要介绍了C#使用Ado.net读取Excel表的方法,涉及C#使用OLEDB操作Excel的方法,需要的朋友可以参考下...2020-06-25
  • ADO与ADO.NET的区别与介绍

    ADO与ADO.NET简介ADO与ADO.NET既有相似也有区别...2021-09-22
  • ADO.NET 读取EXCEL的实现代码((c#))

    经常需要在数据库与Execl之间互导数据。net时代,ADO.NET可以使用使用Microsoft.Jet.OleDb访问访问Excel,网上已经有很多类似的资源,最典型也是最简单的可能如下:(asp.net环境)...2021-09-22
  • VS2010/VS2013项目创建 ADO.NET连接mysql/sql server详细步骤

    这篇文章主要介绍了VS2010/VS2013项目创建,及ADO.NET连接mysql/sql server详细步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • ADO.NET通用数据库访问类

    这篇文章主要为大家介绍了ADO.NET通用数据库访问类,利用ADO.NET的体系架构打造通用的数据库访问通用类,感兴趣的小伙伴们可以参考一下...2021-09-22
  • ADO.NET实用经验汇总

    这篇文章主要介绍了ADO.NET实用经验汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • ADO.NET编程之基础知识

    ADO.NET是专门为帮助开发人员建立在Intranet或Internet上使用的高效多层数据库应用程序而设计的,它作为Windows平台下开发应用系统的数据访问技术,已经在企业信息系统的开发中得到了广泛的应用。...2021-09-22
  • ADO.NET制做一个登录案例

    这篇文章主要为大家介绍了ADO.NET制做一个登录案例的详细过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • ADO.NET无连接模式的详细介绍

    这篇文章详细介绍了ADO.NET无连接模式及操作实例,有需要的朋友可以参考一下...2021-09-22