Можно ли иметь несколько экземпляров Access, работающих параллельно? - PullRequest
2 голосов
/ 14 июля 2009

У меня есть несколько наборов кода, которые мне нужно запустить в Access 2007, и я пытался понять, будет ли приемлемым запускать их одновременно. Каждый набор данных, который мне нужен для запуска кода Access VBA, занимает около 5-8 часов. Будет ли запускать их по два за раз или все сразу, возникнут проблемы?

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

Edit:

Каждая программа Access будет выполнять код на VBA, который по существу сравнивает сохраненные значения местоположения устройств (MIU) по широте и долготе с набором точек сетки и группирует все MIU в указанной сетке в новой таблице. Сетка смещается после этого процесса и повторяется до тех пор, пока не будут достигнуты максимальные широта и долгота для всей поисковой сетки.

Ответы [ 4 ]

4 голосов
/ 14 июля 2009

Это действительно "кто знает?" тип вопроса. Если 5 - 8-часовой процесс потребляет либо большую часть циклов ЦП, либо большую часть ОЗУ, то выполнение двух процессов на коробке не увеличит скорость; это фактически ухудшило бы его из-за причин переключения задач.

Если эти процессы действительно независимы, вы можете рассмотреть возможность работы нескольких машин на разных копиях базы данных. Таким образом, вы можете масштабировать.

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

3 голосов
/ 15 июля 2009

Как многие знают, я большой промоутер Access. В этом случае мне кажется, что Access, вероятно, не тот инструмент.

Но я предполагаю, что вы реализовали свой процесс в Access наиболее логичным способом. Например, если бы вы могли заменить обход набора записей и обновить поле / поля в каждой строке обновлением SQL, это, вероятно, было бы гораздо более эффективным.

Одна вещь, на которую следует обратить внимание, это то, что многие люди часто ходят по наборам записей, делая обновления, когда они, вероятно, могут разделить проблему по вертикали и выпустить конечное число операторов SQL (по одному для каждого столбца). Примером этого может служить попытка синхронизации данных между двумя идентичными таблицами, которые были обновлены. Гораздо эффективнее писать обновления SQL «на лету», которые идут столбец за столбцом, чем обходить строку за строкой и обновлять поле за полем.

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

0 голосов
/ 30 августа 2016

Я обнаружил запуск MS Access параллельно из файла .CMD:

start db1.accdb / x macro1 начать db2.accdb / x macro2 начать db3.accdb / x macro3 start db4.accdb / x macro4

Имеет проблемы. MS создает видимость запуска всех 4 БД и закрытия после завершения. Эти процессы абсолютно независимы, глядя на разные базы данных. Проблема в том, что MS преждевременно закроет один без предупреждения (добавлена ​​временная метка обновления в набор результатов для проверки). Возможно, есть способ выделить пространство памяти?

0 голосов
/ 14 июля 2009

Если вы имеете в виду 2 разных экземпляра доступа, то это будет зависеть больше от того, что вы делаете, и от мощности компьютера (ОЗУ и частота процессора, количество процессоров).

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

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

Когда мне нужно выполнить большую работу, я делаю ее на нашем сервере Citrix.

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

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