2012-12-08 59 views
0

我有一個asp.net web應用程序與SQL Server數據庫一起使用,我們稱之爲服務器'A'。應用程序的速度是我們的城域網使用一個數據庫的兩個相同的asp.net應用程序之間的速度差異

好,我發佈我們的web應用程序中,關於服務器「A」所使用的數據庫的另一臺服務器(服務器「B」)。

我們的速度很慢,當服務器從「B」呼叫應用。

網絡沒有問題,當我打電話服務器從服務器「B」「A」的應用程序,我們沒有任何減速

兩個Web應用程序absoultely是相同的,使用一個數據庫

我真的很困惑;是什麼原因?

任何人都可以幫助我嗎?

+0

您是否將大量數據從數據庫傳輸到應用程序?當它們位於不同的服務器上時,這會慢很多。 – TomTom

回答

0

我在所有服務器上關閉了防火牆,但沒有更改發現。但是,當我轉到Windows防火牆時,在高級選項卡,網絡連接設置部分(在Windows Server 2003中)和取消選中所有連接。

我的速度問題已解決。

0

這裏有各種各樣的事情發揮着至關重要的作用。

  • 當您運行從已舉辦了數據庫在同一臺服務器的asp.net應用程序,很可能是更多的SQL Server連接是無論是通過「命名管道」或「共享存儲空間」。與tcp ip相比,這兩種方法都是與服務器通信的非常快速的方法。當您將asp.net應用程序託管在另一臺服務器上時,它將被強制使用tcp-ip進行通信。

  • 網絡可以很好,但你也應該檢查其他因素,如幀大小和MSS在網絡上。擁有更大的幀大小有助於sql server有效地使用整個可用速度。諸如連接在網絡中的交換機和路由器等設備也起着至關重要的作用。

  • 除了一切,我懷疑你的應用程序正在使用不適當的架構或以下的錯誤做法。例如如果你想要列表產品,你可以查詢從數據庫中獲取所有產品,並將結果篩選出來,這是一個錯誤的做法。理想情況下,查詢只應該讀取您想要顯示的記錄。 使用數據適配器而不是讀取器也會導致此類問題,因爲他們嘗試讀取整個內容並創建一個內存表。

+0

我在服務器B上有幾個拷貝,它們中的每一個都連接到服務器A的一個數據庫但是這個問題在某些應用程序中看到,而在其他的問題中沒有問題 –

相關問題