Назад | Перейти на главную страницу

Нужна помощь с базой данных Access с Front End и Back End очень медленно с более чем 1 пользователем

Консультант установил базу данных для клиента, основанного на Access 2007, с клиентским интерфейсом (на каждой рабочей станции), и я предполагаю, что серверная часть базы данных (на файловом сервере это контроллер домена server 2003 с очень современным оборудованием. , память и т.д ...).

Когда мы запускаем базу данных с рабочей станции, мы получаем наш типичный экран входа в систему, когда пользователь входит в систему и есть только один пользователь в интерфейсе базы данных, все происходит очень быстро, нажатия клавиш очень быстрые и т. Д.

Как только другой пользователь входит в интерфейс или программу базы данных, все сканирование медленно останавливается. Нажатия клавиш в полях отображаются бесконечно, например, если вы введете слово «найти», появится буква f, затем примерно через 10 секунд появится буква «i», затем через 10 секунд «n», затем «d».

Текущая компания, которая продала нам базу данных, предлагает метод проб и ошибок, и я не заинтересован во взломе реестра на сервере только для того, чтобы посмотреть, имеет ли это значение.

Я отчаянно нуждаюсь в помощи, так как у меня нет времени или интереса к базам данных, пожалуйста, все предложения на этом этапе приветствуются.

Следует отметить, что в сети нет проблем с подключением кабелей к переключателям на другие соединения. Использование любой из рабочих станций для просмотра и открытия файлов на файловом сервере, электронной почты, Интернета и т. Д. Работает очень быстро. Единственное, что перестает нормально работать, - это база данных.

Приношу свои извинения за то, что не уделял много внимания ошибкам сервера по вопросам MS Access.

1) Это хорошо известная проблема с простым решением в сообществе MS Access. Я сомневаюсь в технической компетентности консультанта или разработчика приложения Access, если они не знают о проблеме и ее решении.

2) См. Акк.ess Performance FAQ страницу, которую я веду примерно с 1997 года. В частности, первая ссылка о блокировке LDB решит проблему, когда второй пользователь замедлит работу приложения.

Вы можете установить SQL Server Express, который является бесплатным и имеет ограничение на размер базы данных 10 ГБ, что существенно больше, чем в Access, на контроллере домена и связывает отдельные таблицы с внешним интерфейсом Access через ODBC. Таким образом, вы, вероятно, получите гораздо лучшую производительность для нескольких пользователей, а Access может потреблять сеть даже для 1 пользователя, как вы сейчас настроили.

Добро пожаловать в базы данных на основе Microsoft Access и в «технологию» баз данных с совместным доступом в целом. К счастью, проблемы сегодня в основном связаны со скоростью (тогда как в предыдущих версиях ОС Windows могло произойти некорректное повреждение данных).

Вы видите огромное замедление, потому что сервер должен быть намного более осторожным при предоставлении блокировки клиентам, когда более одного клиента обращается к одному и тому же файлу базы данных. Когда к файлу обращается только один клиент, сервер может позволить клиенту получить «уступающие блокировки» и кэшировать больше данных локально. Наличие нескольких клиентов делает ситуацию гораздо более жесткой для серверного компьютера, поскольку необходимо поддерживать согласованность между клиентами в отношении видимого содержимого файла.

Возможно, вам удастся повысить производительность, поигравшись с настройками в «Службе сервера» (LanManServer) на сервере, но вы никогда не увидите такой же производительности с несколькими пользователями, как с одним пользователем. .

Если вы действительно хотите, чтобы это работало хорошо, я бы порекомендовал оценить возможность «увеличения размера» серверной базы данных до SQL Express или какого-либо другого подлинного механизма базы данных клиент / сервер. Если «серверная часть» - это просто набор таблиц, к которым «внешний интерфейс» использует функциональные возможности «таблицы ссылок» для доступа, то это довольно хороший кандидат для перехода к экземпляру SQL Express. Консультанту не нужно было бы ничего больше, чем использовать SQL Server Migration Asstant для Microsoft Access.

Помимо того, что он является клиент-серверным и, следовательно, намного быстрее, SQL Express также предоставит вам хороший способ делать резервные копии в Интернете (пока пользователи активно используют базу данных). Пользователи могут «забыть» закрыть приложение, и вы по-прежнему будете получать резервные копии, тогда как в Access файл серверной части будет «заблокирован» и недоступен для резервного копирования.

Список преимуществ, которые вы получите от использования SQL Server / SQL Express на бэкэнде, слишком длинный, чтобы его здесь изложить, хотя я подозреваю, что ваш консультант не знаком с ними, поскольку они не удосужились использовать SQL Server. / SQL Express для начала. Вы можете подумать о том, чтобы нанять другого консультанта, если вы решите расширить / улучшить приложение позже.