максимальное количество подключений к сети доступа к базе данных Access - PullRequest
4 голосов
/ 16 сентября 2010

Если у меня есть база данных Microsoft Access 2007 в сетевом расположении, есть ли ограничение на количество клиентских компьютеров, которые могут использовать базу данных? Клиент не будет установлен Access и вместо этого будет использовать Access Runtime 2007.

Будет ли изменено максимальное количество подключений, если я отделю интерфейс от внутреннего интерфейса, в отличие от всех, кто просто обращается к файлу напрямую по сети?

Мне известно, что описанный здесь подход не идеален. Я бы не стал так проектировать, но я должен это поддержать. Знание того, сколько может занять текущий дизайн, - это знание того, сколько одновременных соединений он может обработать. Любая информация приветствуется!

Ответы [ 4 ]

7 голосов
/ 17 сентября 2010

Jet / ACE имеет аппаратный лимит в 255 соединений.

Но вы никогда не приблизитесь к этому в реальной жизни.

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

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

Для меня практический предел находится где-то в диапазоне 15-25.С этого момента я бы начал процесс перехода на серверную часть.Дело не в том, что вы не можете сделать это лучше, просто для того, чтобы поддерживать больше одновременных пользователей, вы начинаете очень внимательно относиться к тому, как вы взаимодействуете с данными, и вам может понадобиться переходить на несвязанные формы редактирования данных.Сделав это, вы отказались от 75% преимущества внешнего интерфейса Access.

Что касается проблемы «разделения», то дело не столько в количестве одновременных пользователей, сколько впросто вопрос вообще не работает, если ты не разделен.Любое приложение Access с более чем одним пользователем должно быть разделено.Никаких исключений.

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

Что касается соединений, не беспокойтесь об этом.Приложение Access с серверной частью Jet / ACE - это скорее проблема пользователей, так как вы будете использовать одно постоянное соединение.Пытаться управлять соединениями, открывать и закрывать их контрпродуктивно, так как это совершенно необоснованно облагает налогами механизмы совместного использования файлов.То есть, вы по-настоящему ничего не получаете по емкости, но в итоге вы используете много циклов ЦП и пропускной способности без какой-либо полезной цели.

Это, конечно, еретический совет по сравнению спрактики программирования клиент-сервер, но приложение Access с серверной частью Jet / ACE не является клиент-сервером, поэтому вам не стоит об этом беспокоиться.

2 голосов
/ 18 сентября 2010

Производительность не проблема.Проблема в том, что Access не любит делиться формами, отчетами и модулями в одном MDB / ACCDB с несколькими пользователями.Это может привести к повреждению и другим странным проблемам в файле базы данных Access.Исправить эти проблемы означает, что каждый должен выйти из базы данных.Также вы, разработчик, не сможете работать с этими объектами, пока пользователи находятся в базе данных.Кроме того, я предпочитаю, чтобы пользователи получали MDE / ACCDE, чтобы они не испытывали соблазнов.,Также ознакомьтесь с бесплатной утилитой для базового использования Auto FE Updater , которая позволяет относительно безболезненно распределять новые FE.

1 голос
/ 17 сентября 2010
0 голосов
/ 17 сентября 2010

Я не знаю о техническом ограничении, но практическое ограничение составляет от 5 до 10 одновременных пользователей.Конечно, это сильно зависит от модели использования, то есть от того, сколько данных записывается, сколько одновременных операций чтения и записи и т. Д.

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

...