Я создал приложение MS Access 2003, настроенное как разделенная внешняя / внутренняя конфигурация, с группой пользователей примерно из пяти человек. Входной конец .mdb находится на сетевом файловом сервере и содержит все запросы, формы, отчеты и код VBA, а также ссылки на все таблицы во внутреннем файле .mdb и некоторые ссылки на источники данных ODBC, такие как AS / 400. Бэкэнд находится на том же сетевом файловом сервере, и в нем просто есть данные таблицы.
Это работало хорошо, пока я не "начал работать", и моя группа пользователей не начала получать запросы на усовершенствования, отчеты об ошибках и т. Д. Я внедрял новый код, разрабатывая / тестируя в своей собственной копии интерфейса. .mdb в другой сетевой папке (которая связана с тем же внутренним .mdb), затем публикует мой заполненный файл в папке «приходи и получай», предупреждая пользователей, и они копируют / вставляют новый файл переднего плана для своих собственных папок в сети. Таким образом, каждый пользователь может обновить свой интерфейс, находясь в «точке остановки», без необходимости загружать всех сразу.
Я обнаружил, что когда я сейчас развиваюсь, иногда Access становится очень медленным. Например, когда я разрабатываю форму и пытаюсь щелкнуть раскрывающийся список в окне свойств, появится стрелка раскрывающегося списка, но пройдет несколько секунд, прежде чем появится список параметров. Или существует огромное отставание в выборе и перемещении элементов управления в форме. Или большое отставание клавиатуры.
Тогда, в остальное время, вообще нет никакого отставания.
Мне интересно, связано ли это с тем, что я связан с тем же бэкэндом, что и другие пользователи. Я приложил разумные усилия, чтобы настроить запросы, формы, отчеты и т. Д. С минимальной блокировкой записей, если таковая вообще была, в зависимости от необходимости. Но я, возможно, что-то пропустил, или, возможно, есть другая проблема с производительностью, которую мне нужно решить.
Но мне интересно, есть ли еще лучший способ для меня настроить свой собственный бэкэнд разработки .mdb, чтобы я мог тестировать свой код на «безопасных» данных вместо тех же живых данных, что и остальные пользователей. Боюсь, что это только вопрос времени, когда я испорчу некоторые данные, возможно, в самый неподходящий момент.
Очевидно, что я мог бы просто создать отдельный бэкэнд .mdb и вручную каждый раз переконфигурировать ссылки таблиц во внешнем интерфейсе, используя менеджер связанных таблиц. Но я надеюсь, что есть более элегантное решение, чем это.
И мне интересно, есть ли какие-либо другие проблемы с производительностью, которые я должен рассмотреть в этой многопользовательской конфигурации с разделенной базой данных.
РЕДАКТИРОВАТЬ: я должен был добавить, что я застрял с MS Access (не MS-SQL или любой другой "настоящий" бэкэнд); для более подробной информации смотрите мой комментарий к этому посту.