Подходит ли MS Access (JET) для многопользовательского доступа? - PullRequest
17 голосов
/ 18 апреля 2009

У меня есть продукт, предназначенный для настольных компьютеров, использующий файл MS Access в качестве базы данных.

Теперь некоторым пользователям необходимо установить его на несколько ПК (скажем, на 2 или 3) и ПОДЕЛИТЬСЯ базой данных.

Я думал поместить файл MS Access в общую папку и получить к нему доступ с ПК, но ... JET Engine предназначен для многопользовательского доступа?

Какие-нибудь советы или вещи, которые нужно знать об этом?

EDIT: Это приложение .net, использующее базу данных в качестве хранилища (не использующее базу данных в качестве внешнего интерфейса)

Ответы [ 13 ]

0 голосов
/ 30 декабря 2009

Я могу сказать вам по болезненному опыту, что Jet 3 / 3.5 не был надежным. Я видел, как он часто падал при небольшой нагрузке, и когда происходили сбои, вы рисковали испортить данные. Раньше он был чрезвычайно чувствителен к любым проблемам с питанием, любым сбоям клиента (даже к пользовательскому интерфейсу, связанному с mdb) и любым проблемам с локальной сетью. Более поздние версии Jet могут быть лучше, но переключение на Sql Server, по-моему, явно является способом пойти на что-то, кроме простого ввода данных с небольшим количеством пользователей. Sql Express бесплатен, и вы ничего не потеряете, особенно если ваш пользовательский интерфейс в .Net, а не в Access.

РЕДАКТИРОВАТЬ: Microsoft не считает, что вы должны полагаться на Jet 4.

от: http://support.microsoft.com/kb/303528

Microsoft Jet не предназначен для использования с серверными приложениями с высокой нагрузкой, серверными приложениями с высокой степенью параллелизма или с серверными приложениями 24 часа в сутки, семь дней в неделю. Это включает в себя серверные приложения, такие как веб-приложения, коммерческие приложения, транзакционные приложения и приложения сервера сообщений. Для приложений такого типа наилучшим решением является переключение на настоящую систему баз данных клиент / сервер, такую ​​как Microsoft Data Engine (MSDE) или Microsoft SQL Server. При использовании Microsoft Jet в приложениях с высокой нагрузкой, таких как Microsoft Internet Information Server (IIS), вы можете столкнуться с одной из следующих проблем: Повреждение базы данных Проблемы со стабильностью, такие как сбой или блокировка IIS Внезапный сбой или постоянный сбой драйвера для подключения к действительной базе данных, которая требует перезапуска службы IIS

0 голосов
/ 11 ноября 2009

Если вы используете сервер терминалов, производительность действительно хорошая. У нас есть больше решений до 50 пользователей в одном доступе MDB. Разработка очень быстрая, а развертывание - просто.

Проблемы:

  • каждый может скопировать данные mdb
  • нет прав доступа
  • ограниченные процедуры хранения
  • оптимизация (сжатие и восстановление) возможна только без данных. База данных
  • ограничение до 2 ГБ!
0 голосов
/ 18 апреля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...