感谢您阅读我的博客,如果您现在工作、学习累了或者疲惫了,不妨聆听一下音乐,它能够减轻你的疲劳,还能够带给您一种舒适愉悦的心情。如果您认为这篇文章还不错或者有所收获,您可以在页面 右侧和底部 扫描二维码 打赏我,您的鼓励是我继续写作、分享的最大动力!

.NET连接池

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;

namespace ConnectionPoolDemo01
{
    /// <summary>
    ///     连接字符串
    /// </summary>
    public class ConnStr
    {
        public string Flag { get; set; }

        public string ConnString { get; set; }
    }

    /// <summary>
    ///     连接池的最大连接数对并发数的影响
    ///     LDH @ 2018-7-13
    /// </summary>
    internal class Program
    {
        private static void Main()
        {
            Console.Title = "连接池的最大连接数对并发数的影响-LDH";
            ShowEffects();
            Console.ReadKey();
        }

        private static void ShowEffects()
        {
            var connStringNoPooling =
                @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True;Pooling=False;";

            var connStringDefault =
                @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True;";

            var connStringPooling100 =
                @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True;Pooling=True;Connection Lifetime=10;Min Pool Size = 100;Max Pool Size=100; ";

            var connStringPooling200 =
                @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True;Pooling=True;Connection Lifetime=10;Min Pool Size = 100;Max Pool Size=200; ";

            var connStringPooling300 =
                @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True;Pooling=True;Connection Lifetime=10;Min Pool Size = 100;Max Pool Size=300; ";

            var connStringPooling500 =
                @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True;Pooling=True;Connection Lifetime=10;Min Pool Size = 100;Max Pool Size=500; ";

            var connStringPooling1000 =
                @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True;Pooling=True;Connection Lifetime=10;Min Pool Size = 100;Max Pool Size=1000; ";

            var list = new List<ConnStr>
            {
                new ConnStr {Flag = "无连接池", ConnString = connStringNoPooling},
                new ConnStr {Flag = "默认    ", ConnString = connStringDefault},
                new ConnStr {Flag = "最大100 ", ConnString = connStringPooling100},
                new ConnStr {Flag = "最大200 ", ConnString = connStringPooling200},
                new ConnStr {Flag = "最大300 ", ConnString = connStringPooling300},
                new ConnStr {Flag = "最大500 ", ConnString = connStringPooling500},
                new ConnStr {Flag = "最大1000", ConnString = connStringPooling1000}
            };

            foreach (var connObj in list)
            {
                var sw = Stopwatch.StartNew();

                TestQuery(connObj.ConnString);

                sw.Stop();

                Console.WriteLine("{0} => 消耗毫秒数:{1}", connObj.Flag, sw.ElapsedMilliseconds);
            }
        }

        private static void TestQuery(string connString)
        {
            var sql = "select top 1 * from dbo.Person;WAITFOR DELAY '00:00:00.500'";

            var dt = new DataTable();
            using (var conn = new SqlConnection(connString))
            {
                conn.Open();
                var cmd = new SqlCommand(sql, conn);
                var adapter = new SqlDataAdapter(cmd);
                adapter.Fill(dt);
            }
        }
    }
}

/*
    无连接池 => 消耗毫秒数:880
    默认     => 消耗毫秒数:521
    最大100  => 消耗毫秒数:518
    最大200  => 消耗毫秒数:521
    最大300  => 消耗毫秒数:524
    最大500  => 消耗毫秒数:514
    最大1000 => 消耗毫秒数:523

    如此看来, 连接数增加对增加并发有一定的改善作用,但达到一定程度后不再上升。可能 256 ~ 512 比较合适
    可能跟CPU性能也有关系, 哪位有比较强悍的机器可以一试
*/

 

posted @ 2018-07-13 10:47  Love In Winter  阅读(55)  评论(0编辑  收藏  举报
作者: LifeDecidesHappiness
出处: http://www.cnblogs.com/LifeDecidesHappiness/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址 2468881301@qq.com  联系我,非常感谢。
踏实做一个为人民服务的搬运工!
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能,您的支持和鼓励是我继续写作、分享的最大动力!

点击关注不迷路,让我带你上高速!