關於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的情況,也就是說重用了第一次打開時所用的鏈接。

數據庫的打開與關閉是很消耗系統的性能,利用這種對鏈接的關聯方式可以減輕系統的負擔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM