關於SQL SERVER 資料連結字串的MultipleActiveResultSets的說明

來源:互聯網
上載者:User

 近期的一個項目是關於不同資料庫同步的操作,考慮到資料的及時性,應用程式的效能,在資料庫連結字串中加入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的情況,也就是說重用了第一次開啟時所用的連結。

資料庫的開啟與關閉是很消耗系統的效能,利用這種對連結的關聯方式可以減輕系統的負擔。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.