我們在計算機A上配置了SQL Server 2008 R2的「服務器」。在同一個局域網中,我們有機器B,它是一臺具有相同硬件而不安裝SQL Server的計算機。SQL Server大量的網絡通信開銷?
我們有一套單元測試要求從數據庫中一些記錄,並將它們映射到正確的CLR對象。當從機器A運行此單元測試時,使用SQL Server,測試運行5ms。
如果我測試的代碼複製到機器B和運行測試共坐〜50毫秒的這是一個顯著增加,如果這僅僅是通過網絡開銷造成的。
執行不發送大量數據的查詢(沒有斑點/列中的XML數據),總的數據大約是幾KB。數據使用IDataReader
讀取。我們使用一次打開的單個連接,用於向數據庫發出約24次查詢。
是否有任何提示/技巧,我可以爲了嘗試測試,如果它是真正的網絡開銷減慢執行?我有一種感覺,就是在SQL Server中沒有正確配置。
我不知道該怎麼回答你期望在這裏:任何你做在網絡上會比在本地做顯著慢,所以本身這一點也不奇怪。令人驚訝的是,你正試圖在你的單元測試執行中保存45ms。如果你能解釋爲什麼你需要這樣做,有人可能會有一個建議。您可能還想嘗試dba或serverfault網站,因爲這似乎不是一個編程問題。 – Pondlife 2012-04-04 07:54:55
@Pondlife,thx尋求幫助。我確信網絡開銷可能是問題,但我想知道如果我沒有錯過什麼和/或是否有方法可以描述這樣的事情。把它移到serverfault/dba可能是個好主意,但我不知道如何去做。 – thekip 2012-04-04 08:31:05
你還沒有真正弄清楚「問題」是什麼,因爲大多數人不會抱怨他們的單元測試花費45毫秒來執行:) – Pondlife 2012-04-04 11:44:05