2008-11-11 91 views
1

在這裏抓住吸管...我使用幾個2003樣式的Access數據庫(.MDB)與VB6桌面系統一起工作。最近,我將第一個功能從VB6改爲VB.NET,仍然使用Access數據庫。這不僅僅是一個轉換,而是一個具有附加功能的重寫。它仍然是相當簡單的功能,具有低容量數據庫。我們有1400個客戶,擁有不同機器質量的小企業。大多數客戶對新的屏幕和功能感到滿意。這些客戶中的極少數經歷了加載datagridview的EXTREME緩慢。客戶服務部門告訴我們:1)機器至少有1 GB的內存,2)重新啓動總是解決問題。是否VB.NET垃圾訪問數據庫?

我寫了一個應用程序,嚴重放慢了我的機器,它對我來說運行得比對那些少數客戶更好。另外,我的Access數據庫從來沒有被這個應用程序丟棄。

有什麼建議嗎?

謝謝!

+0

聽起來像是你在你的應用程序中的內存泄漏。 多個用戶是否碰到相同的訪問數據庫? – AlexCuse 2008-11-11 17:22:27

+0

這兩個商店都有多臺機器。多重意味着2到4之間。他們有能力擊中相同的數據庫,但不太可能頻繁使用。謝謝你的幫助! – CindyH 2008-11-11 17:29:57

+0

多用戶本身不是腐敗的原因。如果您遇到腐敗,那麼操作環境(硬件或軟件)就會出現問題。排除故障很麻煩。 – 2008-11-14 04:59:34

回答

2

更新訪問數據庫時重新啓動可能會導致垃圾回收。

您需要一些更多的信息,以便您更好地瞭解正在發生的事情。他們需要在出現問題的工作站上爲您收集一些信息。使用任務管理器,你可以讓他們得到以下信息:

  • CPU利用率
  • 什麼任務佔用了大部分的CPU
  • 峯(提交)內存在XP上 - 沒有當量在Vista上
  • 總(在XP提交)內存 - 在Vista上沒有當量
  • 在XP可用(物理)內存 - 免費在Vista上(由由Superfetch的毫無價值)

這是阿爾斯o可以在XP和Vista上使用命令行工具「SYSTEMINFO」來獲得Total和Available內存。如果你的可用空間非常小,而且在XP上如果你的Total Commit大於Total Physical,那麼你很可能會交換內存(或內存泄漏),導致你的速度變慢。

底線是你需要更多的信息。它可能是工作站上的另一個應用程序導致的問題。我們遇到Notes 5.0出現問題的情況,即如果大部分窗口被另一個窗口覆蓋並且您收到新郵件消息,則Notes上的CPU利用率達到100%。這導致應用程序運行緩慢,除非您在工作站上查看任務監視器,否則將永遠無法猜測它是導致問題的Notes。這個問題總是在不同的程序中被調用(前景中的那個)。 Access也可以在不同的模式下使用100%的cpu,即使它看起來不像是在做任何事情。

收集儘可能多的信息,你可以。您可能需要編寫一個vbscript或程序,以便爲您收集一些信息,以便任何有問題的人都可以在重新引導之前運行它來收集信息。

的批處理文件將執行以下操作會給你相當多的信息的:


@echo off 
SystemInfo >c:\systeminfo.log 
tasklist /v >>c:\systeminfo.log 
0

不,VB.Net在Access中很好用。共享環境會垃圾訪問。

由於重新啓動解決了問題,我會檢查您是否正確關閉連接。

+0

我不這麼認爲。局域網上的1-10位用戶通常需要使用訪問數據庫。 如果用戶不使用它,一切正常。 但此行爲不是「默認」。一些調整經驗是必需的。但所有信息都可以在互聯網上獲得。 – TcKs 2008-11-11 17:25:39

+0

主管程序員毫無困難地使用Jet數據庫爲數據存儲編寫多用戶應用程序。 – 2008-11-14 05:00:25

-1

聽起來像是一個很大的內存泄漏給我。

某些客戶會讓您的應用程序運行時間比其他客戶運行時間更長,並且會更難。

使用存在多個併發用戶的Access不可避免地會導致痛苦。

2

我們有類似的經驗,大部分病例都是由殺毒軟件引起的。他們經常檢查文件(一些文件訪問權限)。