0
我有一個在Windows Azure上運行的ASP.NET MVC應用程序和SQL Azure。該應用程序使用SqlClient連接到數據庫。我總是使用相同的connectionString(要使用連接池):緩慢 - 打開和關閉連接到SQL Server
using (SqlConnection conn = new SqlConnection("Static Connection String"))
{
using (var command = conn.CreateCommand())
{
conn.Open();
return command.ExecuteNonQuery();
}
}
我注意到,有是在離開執行緩慢的連接開口之間相當長的時間。例如,如果我有一個包含四個選擇列表的頁面,則應用程序需要打開連接四次以填充列表。如果您使用一個命令執行此操作,並返回所有列表,則性能是令人難以置信的,但是當我打開並關閉連接以單獨獲取結果列表時,性能也會下降。
使用Windows窗體應用程序不會發生。
我的疑問是,對我所在的環境有任何限制嗎?
是否有您無法保持連接打開的原因?此外,有時在調試模式下運行應用程序的速度可能會比發佈速度慢得多,該版本具有優化功能 –
@PhilippeParé保持連接打開只會產生重大問題。 ADO.NET使用連接池,因此它不*必須打開新的連接。相反,它重用以前關閉的連接。 –
問題是,你執行4個查詢,而不是你打開4個連接 - 你不知道。連接池意味着您可以重複使用相同的連接。儘管如此,你仍然需要向服務器發送請求,等待並找回答案。這是4次往返會導致性能下降。無論如何,4個查詢最多比單個查詢慢4倍。如果檢索的數據很小,則往返開銷比查詢本身更昂貴 –