• ADO.NET连接池


    class Program
        {
            static void Main(string[] args)
            {
                //string connStr = "server=.;database=TestBase;uid=lyc;pwd=123456;Max Pool Size=5;";
                //for (int i = 0; i < 10; i++)
                //{
                //    SqlConnection conn = new SqlConnection(connStr);
                //    conn.Open();
                //    Console.WriteLine($"第{i+1}个连接已打开!");
                //}
                //1.证明:Ado.Net默认是启用连接池的。
    
    
                //string connStr = "server=.;database=TestBase;uid=lyc;pwd=123456;Max Pool Size=5;Pooling=false";
                //for (int i = 0; i < 10; i++)
                //{
                //    SqlConnection conn = new SqlConnection(connStr);
                //    conn.Open();
                //    Console.WriteLine($"第{i + 1}个连接已打开!");
                //}
                //2.Pooling=false禁止启用连接池 Max Pool Size=5是无效的
    
    
                //string connStr = "server=.;database=TestBase;uid=lyc;pwd=123456;Pooling=false";
                //Stopwatch sw = new Stopwatch();
                //sw.Start();
                //for (int i = 0; i < 100; i++)
                //{
                //    SqlConnection conn = new SqlConnection(connStr);
                //    conn.Open();
                //   // Console.WriteLine($"第{i + 1}个连接已打开!");
                //    conn.Close();
                //}
                //sw.Stop();
                //Console.WriteLine($"不启用连接池,耗时:{sw.ElapsedMilliseconds} ms!"); //609 ms
    
                //string connStr1 = "server=.;database=TestBase;uid=lyc;pwd=123456;";
                //Stopwatch sw1 = new Stopwatch();
                //sw1.Start();
    
                //for (int i = 0; i < 100; i++)
                //{
                //    SqlConnection conn = new SqlConnection(connStr1);
                //    conn.Open();
                //    // Console.WriteLine($"第{i + 1}个连接已打开!");
                //    conn.Close();
                //}
                //sw1.Stop();
                //Console.WriteLine($"启用连接池,耗时:{sw1.ElapsedMilliseconds} ms!");  //4 ms
    
                //3.测试启用与不启用连接池,性能差,连接池耗时很少
    
    
                string connStr1 = "server=.;database=db1;uid=sa;pwd=123;Max Pool Size=5";
    
                string connStr2 = "server=.;database=db1; uid=sa;pwd=123;Max Pool Size=5";
    
                string connStr3 = "server=.;database=db1;  uid=sa;pwd=123;Max Pool Size=5";
                //会产生几个连接池
                for (int i = 0; i < 5; i++)
                {
                    SqlConnection conn1 = new SqlConnection(connStr1);
                    conn1.Open();
                    Console.WriteLine($"conn1 第{i + 1}个连接已打开!");
                    SqlConnection conn2 = new SqlConnection(connStr2);
                    conn2.Open();
                    Console.WriteLine($"conn2 第{i + 1}个连接已打开!");
                    SqlConnection conn3 = new SqlConnection(connStr3);
                    conn3.Open();
                    Console.WriteLine($"conn3 第{i + 1}个连接已打开!");
                }
                //connStr1与connStr3一样的,所以它们共用一个连接池  connStr2会单独创建一个连接池    2个连接池 
                //连接字符串区分连接池类型
                Console.ReadKey();
            }
        }
  • 相关阅读:
    FreeRTOS基础篇教程目录汇总
    【网络流24题】航空线路问题(费用流)
    【网络流24题】最长不下降子序列(最大流,动态规划)
    【网络流24题】魔术球问题(最大流)
    【BZOJ1926】粟粟的书架(主席树,前缀和)
    【网络流24题】最小路径覆盖问题(最大流)
    【网络流24题】试题库问题(最大流)
    【网络流24题】太空飞行计划问题(网络流)
    【网络流24题】星际转移问题(最大流)
    【BZOJ4736】温暖会指引我们前行(Link-Cut Tree)
  • 原文地址:https://www.cnblogs.com/wxhao/p/13629662.html
Copyright © 2020-2023  润新知