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

连接到数据库服务器通常需要一定的时间,且服务器也需要一定的资源来处理连接。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

时间: 2025-01-21 05:38:10

ADO.NET之连接池技术的使用详解_实用技巧的相关文章

.net 中的SqlConnection连接池机制详解_实用技巧

正确的理解这个连接池机制,有助于我们编写高效的数据库应用程序. 很多人认为 SqlConnection 的连接是不耗时的,理由是循环执行 SqlConnection.Open 得到的平均时间几乎为0,但每次首次open 时,耗时又往往达到几个毫秒到几秒不等,这又是为什么呢? 首先我们看一下 MSDN 上的权威文档上是怎么说的 Connecting to a database server typically consists of several time-consuming steps. A

ASP.NET用SignalR建立浏览器和服务器的持久连接详解_实用技巧

前言 浏览器访问网页通过的是 HTTP 协议,浏览器发送一个请求,服务器返回一个结果.服务器是被动接收请求,如果想反过来,服务器主动发送信息给浏览器咋办呢? 有很多解决方法,比如轮循(浏览器定时去向服务器询问是否有新数据).WebSocket(HTML 5)-- 而 SignalR 就是把这些技术综合在一起,它自动识别当前浏览器支持哪些方式,然后选择最优的方式.我们开发时不必去关注这些细节,SignalR 会帮我们实现,而且 SignalR 是微软开发的,好用是一贯风格. 环境 .NET 4.5

VC用Ado接口连接和使用数据库及注意事项_实用技巧

一.阅读本文所需注意的其它事项 1.进行方法调用时,所传递的参数的类型的转换(可能存在比本文更简便的处理方法但我未发现) 2.每个源文件的每行注释说明了其文件名 3.请关注相关头文件包含关系 4.请关注文中所有中文注释 5.更多的内容请参阅 "VC安装目录\Include\adoint.h"文件,adoint即ActiveX Data Object InterFace(菜 鸟请勿惊慌,这仅仅只是个名称) 二.下面的源文件与您的数据库应用程序不直接相关,但其目标代码(生成的.obj文件)

ASP缓存技术详解_应用技巧

一.何谓ASP缓存/为什么要缓存 当你的web站点采用asp技术建立的初期,可能感觉到的是 asp动态网页技术带来的便利性,以及随意修改性.自如的http控制.但是,随着访问量的增加,你一定会发现自己的站点访问速度越来越慢,IIS重新启动得越来越频繁.接下来,你一定想优化asp,诸如更换性能更优异的数据库.建立索引.编写存储过程等等.这些措施有些不需要增加成本压力,有些则成本压力很大(譬如丛access到SQL),而且效果还不一定. 面对web访问压力,我认为最经济的办法是利用缓存优化技术来实现

.net连接Mysql封装类代码 可直接调用_实用技巧

微软的visual studio没有自带连接Mysql的驱动,要去网上下载一个mysql-connector-net-6.4.3驱动,然后安装就可以使用.下面是我封装好的连接数据库的类,直接调用即可. 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using Syst

ASP.NET连接 Access数据库的几种方法_实用技巧

web.config 第一种方法: <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <add key="AccessConnString"

.net连接oracle的3种实现方法_实用技巧

方式1:直接利用.NET的oracle驱动连接安装Oracle客户端驱动包找到服务器端安装路径:E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN下tnsnames.ora,把该文件覆盖客户端驱动目下该文件配置客户端驱动1.打开数据源管理2.选择系统DSN,点击[添加]3.弹出的界面中选择Oracle in OraDB10g_1驱动,弹出Oracle ODBC  Driver  Configuration界面4.填写四个数据项Data Source Name 

ASP.NET连接SQL数据库的简单实例代码_实用技巧

复制代码 代码如下: using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HTMLControls;us

Excel连接字符串中的HDR、IMEX参数详解_应用技巧

参数HDR的值: HDR=Yes,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用. 系统默认的是YES 参数Excel 8.0 对于Excel 97以上版本都用Excel 8.0 IMEX ( IMport EXport mode )设置 IMEX 有三种模式: 复制代码 代码如下: 0 is Export mode 1 is Import mode 2 is Linked mode (full update capabilities) 我这里特别