zoukankan      html  css  js  c++  java
  • 关于SQL SERVER 数据链接字符串的MultipleActiveResultSets的说明

     近期的一个项目是关于不同数据库同步的操作,考虑到数据的及时性,应用程序的性能,在数据库链接字符串中加入MultipleActiveResultSets;

    MultipleActiveResultSets的作用是指定多活动的结果集是否与指定的链接相互关联;类型是bool类型;true代表与指定的链接关联;false代表与指定的链接不关联;默认是false;

    举个例子(以控制台应用程序为例):

    View Code
     SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
                sb.DataSource = ".";
                sb.InitialCatalog = "Neo_OA";
                sb.IntegratedSecurity = true;
                using (SqlConnection con = new SqlConnection(sb.ConnectionString))
                {
                    string sql = "select count(0) from userinfo";
                    SqlCommand cmd = new SqlCommand(sql, con);
                    con.Open();
                    object ob = cmd.ExecuteScalar();
                    if (ob == null)
                    {
                        Console.WriteLine(0);
                    }
                    else
                    {
                        Console.WriteLine(Convert.ToInt32(ob));
                    }
                }
                Console.ReadLine();

    利用sql server自带的存储过程sp_who来监测我们的进程信息;

    打开我们dug文件下面的exe文件多个,在sql server中执行存储过程sp_who,此时我们会发现在显示列表中,出现多项dbName 是NEO_OA(我用的是这个数据库)的。

    可以看出数据库建立链接多次;

    修改以上程序:

    View Code
      SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
                sb.DataSource = ".";
                sb.InitialCatalog = "Neo_OA";
                sb.IntegratedSecurity = true;
                sb.MultipleActiveResultSets = true;
                using (SqlConnection con = new SqlConnection(sb.ConnectionString))
                {
                    string sql = "select count(0) from userinfo";
                    SqlCommand cmd = new SqlCommand(sql, con);
                    con.Open();
                    object ob = cmd.ExecuteScalar();
                    if (ob == null)
                    {
                        Console.WriteLine(0);
                    }
                    else
                    {
                        Console.WriteLine(Convert.ToInt32(ob));
                    }
                }
                Console.ReadLine();

    仍然按照钢材方式,发现此时没有出现多项是DBNAME是NEO_OA的情况,也就是说重用了第一次打开时所用的链接。

    数据库的打开与关闭是很消耗系统的性能,利用这种对链接的关联方式可以减轻系统的负担。

  • 相关阅读:
    html 上传图片前预览
    php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法
    php 计算 pdf文件页数
    php 获取半年内每个月的订单数量, 总价, 月份
    php 获取两个数组之间不同的值
    小程序支付功能
    关于nginx的Job for nginx.service failed because the control process exited with error code.错误
    linux 安装 Apollo
    MongoDB待续。。。
    ABP vNext...待续
  • 原文地址:https://www.cnblogs.com/hfliyi/p/2472950.html
Copyright © 2011-2022 走看看