MSアクセスのパフォーマンス異なるサーバにリンクされたテーブルから参加?

StackOverflow https://stackoverflow.com/questions/1047237

質問

アクセス(またはだろうか、私は2台の異なるデータベース・サーバからのリンクテーブルとMS Accessデータベースを持っている(SQL ServerのDBとOracle DBから1から一つのテーブルを言う)と私は、これら2つのテーブルを結合するクエリを記述する場合ジェットエンジン、私は推測?)このクエリを処理?それは、それらの行のためのより多くのSELECTを発行する?

それから、行が一致しているかをfigurre、私は参加してるのフィールドを取得するために最初に各テーブルの上にいくつかのSELECTを発行します
役に立ちましたか?

解決

を理解するために重要なことは、この次のとおりです。

あなたはそれが2つのサーバのデータベースにその要求を送信する前に、アクセス/ジェットを最適化できるという質問をしていますか?あなたは両方のテーブルの全体に参加している場合、ジェットは醜いだろうこれは、両方のテーブルを要求する必要があります。

一方で、あなたは1を制限する基準又は参加の両面を提供することができ、場合

、アクセス/ジェットは、より効率的で、代わりにフルテーブルのフィルタ処理結果セットを要求することができます。

他のヒント

うん、あなたはいくつかの深刻なパフォーマンスの問題を持つことができます。私は何年もののこのタイプを行っています。オラクル、SQL、およびDB2 - ぐふ。時々私は、私はそれを行うの7:00に入るときに午前5時にタイマーでそれを設定しなければなりませんでした。

あなたのデータセットが十分に大きい場合、

、それがローカルにテーブルを作成し、データをリンクすることが多い高速です。リモートデータセットのために、また、パススルーに見えます。

たとえば、Oracle DBとSQL DBから顧客の購入のすべてから、昨日の顧客のすべてを引いていると言うことができます。あなたは毎日100人の顧客の平均が、30,000リストを持っているし、あなたの製品50万のリストを持って言うことができますとしましょう。その後、SQL DBにパススルークエリでINの文のようにそれを書き、100人の顧客のリストは、Oracle DBを照会することができます。あなたは、ほぼ瞬時にあなたのデータを取得します。

またはあなたのレコードセットが巨大である場合は、ローカルでそれらを比較し、2つのIDのローカルテーブルを構築し、ちょうど必要なマッチを引っ張っています。

これは醜いですが、あなたは文字通り自分自身の時間を節約することができます。

それは私の推測になります。これは、どちらのサーバーがクエリを完全に制御を持っているとして、さらにクエリの最適化が可能ではない、結合の両側のインデックスが存在する場合に役立ちますが、。

私は2つの異なるデータシステムからテーブルを結合する実用的な経験を持っていません。しかし、要件に応じて、など、など、あなたがAccessテーブルに必要な唯一のレコードとフィールドでSELECTクエリを実行し、最終的には、Accessで参加し、クエリを行うに速く、それを見つけることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top