我正在使用 Visual Studio 2010、Windows XP 和 SQL Server CE。
我想做一个这样的数据库表:
CREATE TABLE Logs
(
Id int,
***LogTime datetime***,
Register1 smallint,
Register2 smallint,
Register3 smallint,
)
Id 将是主键和身份。
我有这些我无法解决的问题:
- 该表将由大批量插入(有时甚至多达 300k 条记录)填充,因为“数据源”将是插入 PC 的 USB 中的文件。此二进制格式文件包含按时间排序的日志。我的软件必须抓取、解码并准备要添加到数据库的记录。
- 数据库中不能有重复的日期时间(2 条具有相同日期时间的记录),因为最终会根据该表的数据制作图表。
所以第一次批量插入就可以了,例如:
1, 2013-01-01 12:34:12, 12, 100, 200
2, 2013-01-01 12:34:24, 13, 100, 212
3, 2013-01-01 12:34:36, 11, 110, 208
...
100, 2013-01-01 14:04:58, 15, 120, 198
但是下一个要插入的文件将具有旧内容+其他新的后续记录。而且我只需要插入新记录(否则我正在创建记录副本)。
所以
文件 1:从 1 月 1 日到 1 月 5 日
文件 2:从 1 月 1 日到 1 月 8 日
目前我已经将数据库表实现为一个平面二进制文件,在插入之前,我用 O(N) 线性扫描找到“插入点”,然后我可以追加新数据。
我想使用 SQL Server CE 而不是平面二进制文件作为数据容器。
任何建议将不胜感激