2011-10-18 126 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