关于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的情况,也就是说重用了第一次打开时所用的链接。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值