此問題是previous asked question的後續操作。SQL Server 2005和.NET之間的延遲
我寫了一個看起來像這樣的簡單程序。
string s;
do
{
using (SqlConnection conn = new SqlConnection("POOLEDCONN"))
{
using (SqlCommand cmd = new SqlCommand("", conn))
{
s = (string) cmd.ExecuteScalar();
Code2IncrementPerfomanceCounter
}
}
} while (!string.IsNullOrEmpty(s))
該查詢返回一個字符串(nvarchar(max),當前最大大小爲9k),SQL Server和.NET之間存在大量延遲。 SQL事件探查器說查詢的持續時間爲0毫秒,所以我認爲它不是數據庫。網絡在1 ms內響應,因此它不應該是網絡。
如果我在我們的測試服務器上運行這個代碼(VMWare,SQL沒有虛擬化),每秒最多會有600個循環。該應用程序不會消耗超過5%的cpu。爲什麼不是 更快?我必須使用流來從SQL或其他內容獲取數據嗎?
Thanx預先
嘗試一次打開連接,而不是每次迭代都執行一次。 – Patrik 2009-08-17 15:04:38
你如何確定這個延遲? – 2009-08-17 09:25:10
與性能計數器 – JSC 2009-08-17 09:28:26