我需要从两个不同的数据库中填充两个DataTable
进行一些比较和只读操作。这需要我"select *"
进入这两个DataTable
。
但是,我需要检索的表在两个数据库中包含大约300万行。我在填写时得到OutOfMemoryException
。
是否有可能将这些DataTable
放在磁盘而不是内存中?
您是否看到任何其他解决方案在这两个巨大的集合上进行比较/执行只读?我需要做的事情使得批量行的子集进行处理变得非常复杂。
答案 0 :(得分:1)
我的猜测是,执行此操作的理想/有效方式是在数据库中执行此操作。不幸的是,您的两个表位于两个独立的数据库中,这可能会导致并发症。
这些表位于同一服务器上的两个不同数据库中(如SQL Server实例中),还是位于两个独立的服务器中?如果它们位于同一服务器/实例中,那么您可以在数据库服务器上执行比较逻辑。
否则,如果这些表位于不同的服务器上,那么是否有可能在数据库之间设置某种复制,以便您可以将这两个数据集合并到一个数据库中,以便进行比较?
答案 1 :(得分:1)
如何用钥匙对它们进行排序呢。
即
set1 A A A B C E
|
set2 B D
然后你可以继续使用set1,更改为set2,返回set1 ...使迭代变得更加容易。