找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 644|回复: 1

[求助]关于database性能的问题,请高手帮忙!

[复制链接]
发表于 2008-10-9 12:25:57 | 显示全部楼层 |阅读模式
正在作的一个项目中,使用access存储ARM机通过串口发送的数据,情况如下:

LabVIEW
版本:8.5
数据库为access,连接使用ODBC数据源方式;
       与数据库连接的工具:LabVIEW Database Connectivity Toolset;
       数据库在程序初始化时打开,程序退出时关闭;
       串口数据主要有两种,A命令长2K,B命令长4K;
       数据发送间隔时间约500ms
       串口数据总量小于2M
       每一条记录经解析分别存入两个表:记为表1、表2
       表1中存入32条记录,每一记录约20Byte
       表2存入4条记录,每一记录约512Byte(A命令)或1024Byte(B命令),类型为二进制数据,即access中ole类型,或MySQL中blob类型(后面将提到)

以下是存在的问题:
       由上可知,如实时存储数据,每500ms需存入36条记录(32条表1、4条表2),记录存入采用DB Tools Insert Data.vi节点,经测试将出现数据丢失现象;
       考虑到数据存入过于频繁,后采用队列缓存方式,并在每次插入操作中延时60ms,经测试仍然出现数据丢失现象!!
       后考虑到数据库打开后有查询操作,之后才进行数据的存入,故此在数据的插入前,即从队列中取出第一条记录进行insert操作前加入一延时节点,测试后发现将延时时间设为15秒(!!!)后数据才能够被完整的存入。
       其后怀疑时前面的select操作影响了数据的插入,因此尝试禁用存入前的所有查询,(在实际引用中不可),但仍出现了数据丢失现象;
       再后来怀疑是access数据库性能无法满足要求,因而换用MySQL数据库,因仍采用ODBC数据源,改动并不是很大,经测试后情况完全相同,仍需15秒延时并每条插入间隔60ms才能稳定存入,故此认为并不是access数据库的问题。为方便程序发布,不再附加数据库安装,仍计划采用access数据库。

现主要问题如下:
1.是否是database工具的问题?因为在两个数据库中均出现相同现象;
2.还是因存入0.5~1KB记录,影响数据库性能?
3.或是数据存入过于频繁造成数据丢失?
4.通常情况下存入如此多数据采用何种方式,难道是写入文件而不写入数据库?
      
       最后,由于公司规定,不能发工程文件上来了,而由于文件关联性较强,发单个vi也很难说明问题所在,如有表述不清之处请提出,以下截图为数据存储部分,该处循环执行次数机多。


[ 本帖最后由 zrf 于 2008-10-9 12:30 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2008-10-9 17:54:55 | 显示全部楼层
当前发现论坛中一个温度存储的例子,把数据量加到与我的情况相当,每记录1024Byte无延时插入3K+数据,没有出现同样的问题,看来不是database的问题,是我的流程上存在问题了,是哪的问题啊?!!
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 00:03 , Processed in 0.041628 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表