2009-03-28 18 views
1

私はローカルデータベースを使ってプログラムを書くプロジェクトに入っています。マルチスレッドアプリケーションでMS Accessトランザクションを処理する方法と、MS AccessとOracleテーブルを同期させるにはどうすればよいですか?

私たちはDelphi、MS Access、およびOracleを使用しています。

問題は、次のとおりです。

  1. MS AccessのDBを挿入して更新するのに必要な複数のスレッドがあります。 私は今、それをテストしていない、私はここでマルチスレッドの問題があることを知っている。 ロックを使用する必要があるのか​​、スレッド上にMS Access DB操作を入れる必要がありますか?
  2. パフォーマンス上の考慮事項については、OracleからMS Accessへ同じテーブルを移動する必要があります。 (私はそれを示唆していませんが、私はプロジェクトマネージャーではありません)。 MSアクセスからのデータを、 (多分数日)の間、Oracleと同期させる必要があります。私はそれについて多くの作業をしなければなりません、簡単な方法がありますか(私たちはBDEを使用します)?
+0

一方向(oracle→access)または両方向(oracle <->アクセス)で同期する必要はありますか。 –

+0

これには、Jetデータストアのみのアクセスは含まれていないようです。 Jet OLEDBクライアントはDAOよりマルチスレッドに適しています。 –

答えて

0

問題#1
私は、MS SQL(Oracleはあまりにも可能ですが、私はそれに関連する問題のわからないんだけど)にMS Accessの部分を移行検討します。これは、MS Accessが持つマルチスレッド/マルチユーザーの問題の多くを処理します。

他のMS AccessアプリケーションをMS SQLに変換する際の問題はほとんどありませんでした(フロントエンドはMS Accessにあり、テーブルはODBC経由でMS SQL DBにリンクされています)。だから、それは痛みが少なく、あなたはスピード/信頼性も得られます。

問題#2
あなたはMS Accessを使用するために強制的に技術的なものがあれば、一番簡単な方法は、ただのMS Accessを使用してOracleテーブルへのODBCリンクを作成することです。そうすれば、あなたは1つの場所だけを更新しています。私はまた、OracleからMS Accessにテーブルを移動する決定に疑問を呈します。 1)私は最初からOracle DBをより信頼しています.2)MS Access/JetはOracleに比べてパフォーマンスが高いとは知られていません。 Oracleサーバーにメモリーを追加します。より高速なプロセッサを提供します。

あなたのきついボトルネックは、とにかくデータベースになることはありません。それはあなたのネットワークになるでしょう。そのため、あるサーバーから別のサーバーに問題を移し、MS Access表とOracle表を同期させる必要があるため、ネットワークの輻輳を増やしています。

関連する問題