如何在多线程应用程序中处理MS Access事务,以及如何同步MS Access和Oracle表?

时间:2009-03-28 00:50:19

标签: oracle delphi ms-access

我正在使用本地数据库编写程序的项目。

我们使用Delphi,MS Access和Oracle。

问题是:

  1. 插入和更新MS Access DB需要多个线程。 我现在没有测试它,我知道访问在这里有一个多线程问题。 我是否需要使用锁或将MS Access DB操作放入线程?
  2. 出于性能考虑,我们需要将同一个表从Oracle迁移到MS Access。 (我个人并不是这样,但我不是项目经理)。 我们仍然需要在一段时间内将MS Access中的数据同步到Oracle (也许好几天)我必须做很多工作,有没有简单的方法(我们使用BDE)?

1 个答案:

答案 0 :(得分:0)

问题#1
我会考虑将MS Access部分迁移到MS SQL(Oracle也可以,但我不确定与此相关的问题)。这将处理MS Access具有的许多多线程/多用户问题。

我在将其他MS Access应用程序转换为MS SQL时遇到了一些问题(前端保留在MS Access中,并且这些表通过ODBC链接到MS SQL DB)。所以它很痛苦,你也可以获得速度/可靠性。

问题#2
如果有某些技术迫使您使用MS Access,最简单的方法是通过MS Access创建到Oracle表的ODBC链接。这样你只需将它更新到一个地方。我还质疑将表从Oracle移到MS Access的决定。 1)我从一开始就更信任Oracle数据库,2)MS Access / Jet在Oracle上的表现并不高。为Oracle服务器添加更多内存;给它一个更快的处理器;等

无论如何,你最严格的瓶颈不会成为数据库。这将是你的网络。因此,您正在将问题从一个服务器移动到另一个服务器,并且您必须通过将MS Access表与Oracle表同步来增加网络拥塞。