MSアクセスのパフォーマンス異なるサーバにリンクされたテーブルから参加?
-
20-08-2019 - |
質問
アクセス(またはだろうか、私は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で参加し、クエリを行うに速く、それを見つけることができます。