簡體   English   中英

SQL Server 2005和.NET之間的延遲

[英]Latency between SQL Server 2005 and .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 Profiler表示查詢的持續時間為0毫秒,因此我認為它不是數據庫。 網絡的響應時間少於1毫秒,因此它不應該是網絡。

如果我在我們的測試服務器(VMWare,SQL未虛擬化)上運行此代碼,則每秒最多將有600個循環。 該應用程序消耗的CPU不超過5%。 為什么進展不快? 我必須使用流技術從SQL或其他方法獲取數據嗎?

提前感謝

每秒600個呼叫是每1.7毫秒1個呼叫。 如果您的延遲時間是1毫秒,而Sql Server對此稍加延遲,那似乎是一個合理的結果?

我需要看三種不同的東西:

  1. 您的Web服務器是使用TCP / IP連接到DB Server還是使用其他協議?
  2. 運行dtoNet進程的計算機上的網絡有多忙?
  3. 如果刪除SQL調用並僅保留性能計數器日志記錄,性能是否會超過600進程/秒?

打開和關閉SQL連接非常昂貴。 您可以只做一次嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM