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