У нас есть приложение MS Access 2003 ADP с SQL Server.Иногда, без какой-либо видимой причины, это приложение начинает потреблять 100% процессорного времени (50% в двухъядерной системе CPU).Это то, что показывает Диспетчер задач Windows и другие инструменты мониторинга / анализа процессов.Как правило, единственный способ остановить такую перегрузку процессора - это перезапустить приложение.
Мы до сих пор не знаем, как вызвать эту проблему по желанию.Но у меня есть ощущение, что это обычно происходит, когда некоторые формы закрываются пользователем.
Примечание: Недавно мы заметили, что одна из форм последовательно повышает загрузку ЦП до 100%.всякий раз, когда это сводится к минимуму.Большую часть времени загрузка ЦП возвращается к нормальной, когда эта форма «не минимизирована».Возможно, это другая проблема, но мы бы тоже хотели раскрыть эту тайну.:)
Поиск в Google этой проблемы не дал очень хороших результатов.Наиболее частая теория заключается в том, что MS Access попадает в какой-то цикл ожидания событий, который практически безвреден с точки зрения производительности, поскольку поток, выполняющий этот цикл, имеет очень низкий приоритет.Это, кажется, не помогает нам, потому что в нашем случае (а) это определенно ухудшает производительность системы и (б) все еще неясно, что именно делает Access доступным в такое «плохое состояние» и как этого избежать.