我需要從兩個不同的數據庫中填充兩個DataTable
以進行一些比較和只讀操作。這把我帶到"select *"
到這兩個DataTable
。將C#DataTable填充到「磁盤上」而不是「內存」中以避免內存溢出
但是,我需要檢索的表包含兩個數據庫中的約300萬行。填充時我得到OutOfMemoryException
。
有沒有可能在磁盤上有這些DataTable
而不是在內存中? 你是否看到任何其他解決方案比較/執行這樣兩個巨大的集只讀?我需要做的事情使得通過成批的行子集進行非常複雜。
您是否需要內存中的整個行集才能開始比較?如果沒有,你可以批量他們做一個100k或一次一次嗎? –
我需要整個集合才能匹配DataTable對象之間的鍵。 – Jerome
我認爲如果有人給出一個有用的答案,我們還需要多一點。您沒有指出您正在執行的操作 - 某人可能會提出一個可以輕鬆分批處理的好算法。您不指定數據庫服務器 - 如果服務器支持跨服務器查詢,操作是否可以在SQL中完成。在完成操作後,您也不會指出自己在做什麼 - 也許您可以將「select *」縮小爲您真正需要的列集合? – Iridium