Tengo una gran cantidad de datos almacenados en un archivo XML, 173 MB (4.6 millones de líneas), que he almacenado en el directorio de trabajo de mi aplicación Windows Forms. Es el resultado de escribir una tabla de datos en un archivo XML. La tabla de datos se llenó originalmente de una consulta a un servidor SQL. El motivo por el que lo almacené localmente en lugar de solicitarlo al servidor es que la solicitud de datos tomó más de 40 segundos y en algunos casos expiró y los datos son estáticos y nunca cambiarán, además el usuario puede estar desconectado y aún usar los datos.Buscando ideas sobre el almacenamiento de datos en el disco local
Volver a cargar el archivo en la tabla de datos lleva de 20 a 30 segundos. No estoy demasiado preocupado sobre el tiempo que tardó en cargarse desde el disco, ya que dejo saber al usuario que los datos se están cargando y que soy paciente. Sin embargo, no me gusta el formato de archivo XML y estoy buscando otras ideas para el almacenamiento en disco.
La tabla de datos solo se usa como intermediario para la población final de un objeto de colección. Si tienes sugerencias, me gustaría escucharlas.
Espero estar lejos de una solución de base de datos e inclinarme hacia un enfoque de archivo binario. A continuación es mi primer intento, pero me da una excepción de memoria insuficiente:
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);
}
puedes decir por qué está "esperando a permanecer lejos de una solución de base de datos"? Como muchos encuestados han señalado, esto parece una opción perfecta para una base de datos local ligera: si explica la restricción de diseño que cree que hace que esto sea incorrecto, tal vez la gente podría sugerir alternativas. – itowlson
Solo esperaba evitarlo. Parece que hay que trabajar mucho con muy poco beneficio. – Brad
Es muy poco trabajo extra. SQLite incluso se factura a sí mismo como una 'base de datos de cero administración'. – Joe