¿Cuál es la mejor manera de almacenar una gran cantidad de datos en una base de datos? Necesito almacenar los valores de varios sensores ambientales con marcas de tiempo. He hecho algunos puntos de referencia con SQLCE, funciona bien para unas pocas 100.000 filas, pero si va a los millones, los seleccionados se volverán horriblemente lentos. Mis tablas reales:Cómo almacenar eficazmente una gran cantidad de filas en una base de datos
Datapoint:[DatastreamID:int, Timestamp:datetime, Value:float]
Datastream: [ID:int{unique index}, Uint:nvarchar, Tag:nvarchar]
Si la consulta para puntos de datos de un flujo de datos específico y un intervalo de fechas, que lleva años. Especialmente si lo ejecuto en un dispositivo WindowsCE incorporado. Y ese es el problema principal. En mi máquina de desarrollo una consulta tomó ~ 1sek, pero en el dispositivo CE tomó ~ 5min
cada 5min Registro de 20 sensores, 12 por hora * 24 h * 365 días = 105,120 * 20 sensores = 2,102,400 (filas) por año
¡Pero podrían ser incluso más sensores!
Pensé en algún tipo de servidor webservice, pero el dispositivo no siempre puede tener una conexión a Internet/servidor.
Los datos deben poder mostrarse en el dispositivo.
¿Cómo puedo acelerar las cosas? elija otro diseño de tabla, use otra base de datos (sqlite)? Por el momento uso .netcf20 y SQLCE3.5
Algunos consejos?
¿Ha indexado en los campos que se está usando como claves para la consulta? Si no, ese sería el primer paso. –