Как обрабатывать транзакции MS Access в многопоточном приложении и как синхронизировать таблицы MS Access и Oracle? - PullRequest
1 голос
/ 28 марта 2009

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

Мы используем Delphi, MS Access и Oracle.

Выпуск:

  1. Для вставки и обновления БД MS Access требуется несколько потоков. Я не проверял это сейчас, и я знаю, что у доступа есть проблема с многопоточностью здесь. Нужно ли мне использовать блокировку или поставить операцию MS Access DB в поток?
  2. Нам нужно переместить ту же таблицу из Oracle в MS Access, из соображений производительности. (лично я этого не предлагаю, но я не менеджер проекта). Нам все еще нужно синхронизировать данные из MS Access в Oracle в течение определенного периода времени. (может быть, несколько дней). Надо много работать над этим, есть ли простой способ (мы используем BDE)?

1 Ответ

0 голосов
/ 29 марта 2009

Выпуск № 1
Я бы подумал о переносе части MS Access в MS SQL (Oracle тоже возможен, но я не уверен в проблемах, связанных с этим). Это решило бы многие проблемы многопоточности / многопользовательского режима, которые есть у MS Access.

У меня было несколько проблем с преобразованием других приложений MS Access в MS SQL (внешний интерфейс остается в MS Access, а таблицы связаны с БД MS SQL через ODBC). Так что это невыносимо, и вы также получаете скорость / надежность.

Выпуск № 2
Если есть что-то технологическое, что заставляет вас использовать MS Access, проще всего будет просто создать ссылку ODBC на таблицу Oracle через MS Access. Таким образом, вы обновляете его только в одном месте. Я также подвергаю сомнению решение перенести таблицу из Oracle в MS Access. 1) Я больше доверяю базам данных Oracle с самого начала и 2) MS Access / Jet, как известно, не очень эффективен по сравнению с Oracle. Добавьте больше памяти на сервер Oracle; дать ему более быстрый процессор; и т.д.

Ваша самая узкая горлышко бутылки в любом случае не будет базой данных. Это будет ваша сеть. Таким образом, вы переносите проблему с одного сервера на другой и добавляете в перегрузку сети, синхронизируя таблицу MS Access с таблицей Oracle.

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