zoukankan      html  css  js  c++  java
  • 理解数据库连接池

    连接池的概念:连接池是一个进程,该进程保存连接并使其处于活动状态,使连接可以被重复使用。在实际的应用场景中,相同的连接字符串对应一个连接池。如果用这个连接字符串new出多个数据库连接,操作完相关的数据操作后,显示close掉连接,对于数据库而言,该连接并没有被释放,而只不过是被标记为"关闭"状态,当一次再次要用到该连接的时候,它可以从连接池中拿出来使用。然而,如果你有太多的连接都没有close掉的话,那么连接池里打开的连接都未被标记为“关闭”状态,这些链接是不可以重复利用的,当超过一定数额的时候就会出现连接异常。在没有超过max pool size (该值可以在写连接字符串的时候自己设置大小,默认为100)的情况下,如果没有可以重复利用的连接,则,数据库会自行往连接池中增加连接。

    下面用一个简单的例子来说明下:

    代码如下:

    代码
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace ConnectionPool
    {
    public partial class Form1 : Form
    {
    SqlConnection conn
    = null;
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    this.textBox1.Text = @"Data Source=HUAMA-QJ;
    Initial Catalog=DBApp;Persist Security Info=True;User ID=sa;
    Password=******;max pool size=5
    ";
    }

    private void btnOpen_Click(object sender, EventArgs e)
    {

    conn
    = new SqlConnection(this.textBox1.Text);
    conn.Open();
    }

    private void btnClose_Click(object sender, EventArgs e)
    {
    if (conn != null)
    conn.Close();
    //SqlConnection.ClearPool(conn);
    }
    }
    }

    在Textbox里设置了连接池中能够容纳连接的最大数:5个。

    如果您点击“OpenConn”,你点击5次,这个时候在SQLSERVER MANAGEMENT STUDIO中执行sp_who2存储过程可以看到以下结果:

    如果你再次点击"openConn"这个时候就出现异常“”。

    当然,你也可以配置min pool size,可以将上述的连接字符串中的max改成min,你会发现,你只要点击一次"openConn"就会发现直接打开了5个连接,这个就是最小连接的含义。当你想要清除该连接字符串相关的连接的时候,也就是清除连接池中相关的连接,你可以用SqlConnection.ClearPool(conn);

    大家可以自己亲手体验一下这个简单的demo,然后再去体会连接池的作用。

  • 相关阅读:
    使用Python学习RabbitMQ消息队列
    Python调用nmap扫描网段主机信息生成xml
    扫描网站服务器真实IP的小脚本
    C语言实现将彩色BMP位图转化为二值图
    Python socket编程之构造IP首部和ICMP首部
    ARP协议抓包之帧长度和Gratuitous ARP的问题
    合天解密200-找茬游戏
    合天misc100
    IDF实验室-简单的js解密
    IDF实验室—不难不易的js加密
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1717303.html
Copyright © 2011-2022 走看看