我有大量的数据存储在一个XML文件中,173 MB(460万行),我存储在我的Windows窗体应用程序的工作目录中.它是将数据表写入XML文件的结果.数据表最初是从查询填充到SQL服务器.
我把它存储在本地而不是从服务器请求它的原因是数据请求耗时超过40秒并且有时超时并且数据是静态的并且永远不会改变,而且用户可以离线并且仍然使用数据.
将文件加载回数据表需要20-30秒.我并不太担心从磁盘加载所花费的时间,因为我让用户知道数据正在加载并且耐心等待.但是,我不喜欢XML文件格式,我正在寻找其他磁盘存储的想法.
数据表仅用作集合对象的最终填充的中间人.如果你有吸烟我想听听他们.
我希望远离数据库解决方案,并倾向于二进制文件方法.下面是我的第一次尝试,但我得到一个内存不足异常:
byte[] b = null;
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, timeData);
b = stream.ToArray();
}
using (FileStream fileStream = new
FileStream("brad.bin", FileMode.Create, FileAccess.Write))
{
fileStream.Write(b, 0, b.Length);
}
Run Code Online (Sandbox Code Playgroud)