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