現在、報告のために財務取引を予算データベースに取り込む必要があります。現在、すべての財務記録を取得し (低速クエリ)、次にすべての予算を取得しています。次に、マージ結合を実行して、予算のあるものだけに財務記録を絞り込みます。これを行う理想的な方法は、最初にすべての予算を取得し、それを別のコンポーネントにフィードして、必要なトランザクションのみを取得するクエリを生成することです。
例:
TableA
in にDatabaseA
は、 という ID 列がありますFakeId
。
TableB
inDatabaseB
には同じ ID 列があります。ただし、TableB
への 1 対 1 のマッピングはありませんTableA
。代わりに、「マッピング」(存在する場合) は 1 対 0 または 1 になります。のすべての財務記録を から取得したいとTableA
考えてDatabaseA
いFakeId
ます。TableB
DatabaseB
これら 2 つの SQL サーバー間にリンク サーバーを作成することはできないため、これを行うことSELECT * FROM TableA WHERE FakeId IN (SELECT FakeId FROM DatabaseB.TableB)
はできません。
ありがとう、ポール