2

ローカルデータベース(localdb、SQL Server)のテーブルに、リモートデータベース(remotedb、Oracle)から取得したデータを入力しています。

リモートデータベースはインターネット上にあり、もちろん、ローカルデータベースは私のdbサーバーに対してローカルです。

remotedbからデータをプルする必要があり、remotedbからデータをプルするには、特定のキー値(たとえば、remotedbのテーブルのuser_idフィールド)からデータをプルするだけで済みます。

キーのセットは大きく、約です。10,000。

ちなみに、remotedbは読み取り専用アクセスであり、imp / expやbatchのようなものへのアクセス、またはサーバーへのアクセスはありません(外部ベンダーによるものです)。

現在、私は次のようなクエリを使用しています。

SELECT
   <my data>
FROM
   <remotedb>.<remote_table> join <remotedb>.<remote_table> ...
WHERE
   <remotedb>.<remote_table>.<remote_field> in
   ( <select that returns my 20,000 IDs> )

これは私には強引な解決策のように思えますが、他の方法は考えられません。

誰かがこの問題を解決しましたか?

4

1 に答える 1

1

私があなたの声明を正しく読んでいれば、過去の会社でこれと同様の問題があり、パフォーマンスに影響を与えました. ベンダーが事前にすべての情報を引き出すことができ、それに対してクエリを実行しない限り、それを回避する別の方法はありません.

于 2012-11-15T20:44:14.797 に答える