最近忙一个项目,时间紧迫了,可目前遇到一个严重的问题,详情是这样:我用EVC.0编一个程序来把采集的数据保存在嵌入式设备的SQLCE数据库中,但弄来弄去发现保存速度跟不上,不知道各位大侠是否知道有什么方法能实现数据库的高速保存。感激不尽啊,急。。。
1. 提高存储效率, 不要来一个存一个, 累加起来存储, 提高打开和关闭的效率
2. 可以在内存里存储. 然后退出的时候拷贝到卡里或者硬盘
3. 提高硬件设备, 可以更换速度快写的外存储设备.
4. 可以考虑使用其他数据库, 例如SQLite
朋友首先谢谢你的回复,根据你的建议看来你是专家,还请帮助我一下,我详细把问题描述一下哦:
我已经把采集来的数据保存在自己定义的一个动态缓冲区数组中,然后过一段时间来保存一次,但是保存的时候还是得一个个来将数组中的数据保存入数据库啊,那么如何提高存储效率呢。还有,我的这个设备要长时间运行的,不存在退出的问题,不运行的时候也就是关机的时候。
关于兄台提出的SQLITE数据库是个什么东东,他的保存效率好吗,我没有接触过。
还请大侠赐教,感激不尽。。。
兄弟的环境跟偶的差不多啊, 我们也是现场采集数据然后保存数据. 不过如果数据比较及时且量大的话,不建议使用数据库来保存,直接文件操作效率高了不少,也节省存储空间.
我想第2条 兄弟还是可以考虑, 关机的时候 你还是知道的, 所有的操作都在内存存储空间里操作,然后关机的时候拷贝到外界存储设备.
SQLite 存储效率还是蛮高的, 其实是一个文件操作, 在网上也很多, 而且是开源代码的. 最大的优点 存储的文件 可以在PC机下访问, 而且访问方式跟CE下一样....
还有优化SQL语句了, 这个就不好说了, 看兄弟怎么用了.
还有在设计的时候, 可以考虑部分数据不保存, 能不保存就不保存吧, 别把设备当成计算机了. 毕竟处理速度 内存啊 都不是一个档次的...
兄弟,可是问题是我们这边不单要存储完了,还需要上位机查询,我知道以。TXT格式的文件存储速度是比较快,但如果用文件存储了,后期的查询是很困难的,当初选数据库就是为了方便随时查询采集的数据。不知道兄弟的项目是不是也跟我一样需要后期的查询管理呢。
兄弟有QQ吧,加一下啊,方便交流,我常常在线。
多少QQ阿? msn 也可以,是该多交流交流,难得同道的
感觉用CEDB这个ce提供的数据库也是不错的,
LZ可以考虑下,
好像单纯的从数据库的解决方案考虑是不行的,因为操作数据库的时间是基本固定的,这个时间无法通过语句的减少来压缩
我一哥们也是做数据采集的,一开始用dos做的,后来转为ce,最后还是用dos实现了。
说是dos上很容易达到的效率,ce上不好实现。