2台伺服器之間sql server 2000查詢回應時間超過800ms

2台伺服器之間sql server 2000查詢回應時間超過800ms

我的網站的Web前端和資料庫分開在兩台伺服器上,透過1000M區域網路連線。

我發現幾乎每個查詢的回應時間都超過800ms。我可以確保我的查詢一切正常,因為當我將其部署在單一伺服器上時,問題不會出現。

網站/asp.net 2.0 資料庫/sql server 2000

答案1

  1. 如果您的 DNS 導致快取的 IP 位址(應該是)出現 800 毫秒的延遲,表示您的網路設定有嚴重問題。恕我直言。您可以使用 ping 來查看這是否是一個問題。

  2. 使用追蹤路由確保資料包在兩台電腦之間使用有效的路由。這很容易做到,因此在擺弄其他東西之前值得嘗試。如果路由中有很多跳,可能超過兩到三跳,請找一個網路人員並詢問他為什麼會這樣。

  3. 當嘗試解決 SQL 網路問題時,最好使用非常簡單的查詢,例如“SELECT GETDATE()”,並使用簡單的查詢工具,例如 SQLCMD.EXE。簡單查詢意味著伺服器不必花費大量時間來解析查詢,不會有任何明顯的鎖定或阻塞,並且查詢不會透過網路帶回數百萬行資料。簡單的查詢工具意味著您不必擔心 IIS 可能會做什麼或可能不會做什麼。如果 IIS 伺服器上沒有安裝 SQLCMD.EXE、OSQL.EXE 或類似工具,則可能值得編寫一個小型 psh 或 vbs 腳本來測試與 SQL Server 的連線。如果您沒有對 IIS 伺服器的這種存取權限,您可能可以編寫一個特殊的 ASP 頁面,僅執行該簡單查詢並傳回結果以及運行時間。

  4. 如果我必須猜測問題所在,那就是這個->特別是對於較舊的設備和驅動程序,請避免依賴網卡上的“自動協商”設置。手動將兩張卡設定為相同的設定。

我知道這很麻煩,但我親自看到這解決了十幾個類似的問題,這些問題困擾著網路人員。 (畢竟,這些是伺服器,它們不會插入許多不同的交換機,也不會需要重新協商鏈路速度或雙工設定。)

您也可以透過使用效能監視器觀察 NIC 上的資料速率(以 MB/秒為單位進行測量)來發現此問題。建立基線後,變更 NIC 上的設定並再次觀察。

您通常可以“實時”更改這些設置,但我不會在第一次擺弄這些設置時在峰值負載時間嘗試它。如果有的話,在測試環境中進行試用會更好。如果您有維護窗口,那就最好了。如果伺服器中只有 1 個 NIC,請小心不要將 NIC 設定為無法與交換機通信,否則您可能需要要求某人實際登入控制台,這對每個人來說都是無賴的。

答案2

可能的原因有很多。例如,可能是網路適配器驅動程式之一出現問題。

您必須檢查 SQL 連線是否為瓶頸,或者是否是一般網路問題。嘗試從 Web 伺服器發出「select getdate()」命令以查看每個查詢是否都受到影響。

到資料庫伺服器的 ping 操作是否也很慢?另外,嘗試使用 IP 位址而不是伺服器名稱 - 也許這是 DNS 解析問題。

相關內容