2011-10-18 182 views
0

我們有一個帶有SQL Server的MS Access 2003 ADP應用程序。有時,沒有任何明顯的原因,此應用程序開始佔用100%的CPU時間(雙核CPU系統上佔50%)。無論如何,這是Windows任務管理器和其他過程監視/分析工具正在顯示的內容。通常,停止這種CPU抖動的唯一方法是重新啓動應用程序。MS Access:100%CPU使用率

我們仍然不知道如何隨意觸發這個問題。但我有一種感覺,當用戶關閉某些表單時,通常會發生這種情況。

注意:最近我們注意到一種形式一直使CPU使用率在最小化時提高到100%。大多數情況下,當表單處於「未最小化」狀態時,CPU使用率會恢復正常。也許,這是一個不同的問題,但我們也想揭開這個謎團。 :)

谷歌搜索這個問題的解決方案並沒有產生很好的結果。最常見的理論是MS Access進入某種等待事件循環,這在實際上是無害的,性能明智的,因爲運行該循環的線程具有非常低的優先級。這對我們來說似乎沒有什麼幫助,因爲在我們的情況下(a)肯定會損害系統的性能,以及(b)究竟是什麼讓Access進入這種「不良狀態」以及如何避免這種情況仍然不清楚。

回答

1

我以前得到過這個CPU使用問題,但是我不記得我們是否曾經發現過一個解決方案,或者它只是在某個時候離開了。

在你的文章中,你沒有提及評論VBA。我建議尋找一個在特定條件下變成無限循環的循環。

+0

當然,VBA已被審查。無罪。 :) – Yarik

1

我不知道這是這個問題的訪問曾經有過的「老字號」天宿醉

http://support.microsoft.com/kb/160819

雖然文章並說,這是固定的版本> = 2000仍可能是某事。

+0

這是我在問這個問題之前已經找到的文章之一。本文提出,Access會限制CPU,因爲它正在主動輪詢其消息隊列,只在其「空閒時間」的前20-30秒內執行此操作,而不會真正影響其他進程的性能。在我們的案例中,這些解釋/症狀似乎都不適用。這可能是舊問題的「新版本」,儘管...... :) – Yarik