1

DataTableいくつかの比較と読み取り専用操作のために、2つの異なるデータベースから2つを入力する必要があります。それは私を"select *"これらの2つに連れて行きますDataTable

ただし、取得する必要のあるテーブルには、両方のデータベースに約300万行が含まれています。OutOfMemoryExceptionいっぱいになります。

DataTableこれらをメモリではなくディスクに置く可能性はありますか?このような2つの巨大なセットで読み取り専用を比較/実行する他のソリューションはありますか?私がしなければならないことは、行のサブセットのバッチで進めることを非常に複雑にします。

4

2 に答える 2

1

私の推測では、これを実行する理想的/効率的な方法は、データベース内で実行することです。残念ながら、2つのテーブルは2つの別々のデータベースにあり、複雑になる可能性があります。

これらのテーブルは、(SQL Serverインスタンスのように)同じサーバー上の2つの異なるデータベースにありますか、それとも2つの別々のサーバーにありますか?それらが同じサーバー/インスタンス内にある場合は、データベースサーバーで比較ロジックを実行できます。

そうでなければ、これらのテーブルが別々のサーバー上にある場合、比較を実行できる単一のデータベースに両方のデータセットを取得できるように、データベース間に何らかのレプリケーションを設定する可能性はありますか?

于 2012-06-11T12:24:31.720 に答える
1

両方をキーで並べ替えるのはどうですか。

すなわち

set1    A  A  A  B  C            E
                 |            
set2             B       D

次に、set1に進み、set2に変更し、set1に戻ることができます...反復がはるかに簡単になります。

于 2012-06-11T12:27:28.607 に答える