2011-12-26 302 views
3

我有一個.NET應用程序(VB.NET)運行對MS Access數據庫。每個數據請求連接到訪問數據庫,運行並返回查詢並再次關閉連接。微軟訪問網絡共享緩慢

我把數據庫放在一臺windows xp 32位機器上。

我有兩個客戶端,我安裝了.NET應用程序。這兩個客戶端都運行Windows 7 professional 32位。

現在我遇到了一個性能問題。

當我使用第一個客戶端它運行良好。所有數據都顯示得非常快。當我比使用第二個客戶端時,連接到數據庫需要大約10秒鐘,獲取數據並關閉數據庫連接。當我詢問第二個客戶端上的其他數據時,它運行良好,直到我向第一個客戶端請求數據比重新獲得數據。比在第一個客戶端再次獲取10秒鐘之前,我的數據被提取。

任何人都可以請幫助我嗎?我欠一杯比利時啤酒來解決這個問題;-)

謝謝!

+1

使用SQL Server。 – SLaks 2011-12-26 21:11:44

+0

用於2客戶端解決方案的@SLaks(如果數據庫不是任務關鍵型的),那麼切換到SQL Server可能不值得。保持與Access數據庫的持久連接很可能解決了問題,而且工作量少得多。 – phoog 2011-12-27 00:42:48

回答

2

經過長時間的搜尋後,我發現它出...我的virusscanner NOD32造成這種情況,很可能是通過過度掃描入站和出站網絡流量。

0
  1. 我不知道計算器是類似這樣的問題,正確的地方,但...

  2. 這聽起來像第一進程鎖定的文件,所以第二個進程必須等待。

「使用SQL Server」不是一個完全錯誤的響應 - SQL Server專門用於處理像這樣的併發問題。

恕我直言...

PS: 這是一個非常蹩腳的鏈接,但它可能會幫助:

http://office.microsoft.com/en-us/access-help/about-sharing-an-access-database-on-a-network-mdb-HP005240860.aspx

PPS: 這裏有一個稍微好一些鏈接,與事的一些建議你可以做以提高併發性:

http://www.softcoded.com/web_design/upgrading_access.php

+0

你好,我發現哪裏出了問題。在服務器上安裝了NOD32 virusscanner,導致了這種奇怪的行爲。 – 2011-12-29 20:37:35

6

Tom Wickerath在提高MS Access應用程序的多用戶性能方面寫了great article。儘管他的文章假定了一個MS Access前端,但許多提示應該適用於.Net應用程序。我記得兩點可以幫助你:

  1. 保持到後端的持久連接
  2. 使用(短)UNC路徑,而不是映射驅動器
+2

第1點對我的經驗非常重要。在某些情況下,將所有子數據表屬性設置爲[無]也意外地證明是有效的。 – 2011-12-26 22:57:53

+0

您可能能夠使用sysinternals中的進程監視器確認點1正在導致減速。我以前有過類似的問題,每次應用程序嘗試打開連接時,都會看到多次1秒的SHARING_VIOLATION延遲。 – chip 2011-12-29 19:18:42