LabVIEW应用环境下数据库存储性能测试
2011-05-12孟繁龙裴志诚赵文俊牛睿哲
孟繁龙,裴志诚,苗 晖,赵文俊,牛睿哲
(中国海洋大学 信息科学与工程学院物理系,山东 青岛 266100)
LabVIEW是一种虚拟仪器的主流开发平台,它提供众多输入控件和显示控件,使用户方便地创建用户界面。LabVIEW不仅可与数据采集、视觉、运动控制设备等硬件通信,还可以与PXI以及RS485等仪器通信。应用LabVIEW开发的系统正越来越广泛地应用于各个领域。LabSQL工具包与数据库连接工具包(Database Connectivity Tookit)都是基于MicrosoftADO和SQL的LabVIEW 数据库访问工具包,利用它们几乎可以访问任何类型的数据库,执行各种SQL查询,对记录进行各种操作。TDMS(Technical Data Management Streaming)文件是NI主推的一种二进制记录文件,它兼顾了高速、易存取和方便等多种优势,能够在NI的各种数据分析或挖掘软件之间进行无缝交互,并提供一系列API函数供其他应用程序调用。
图1 数据源程序框图
1 测试方案设计
首先进行数据源设计。设置数据源的具体方法是编辑一个数据源VI,建立一个DAQmx采样任务,采样设备可为一个仿真DAQmx设备 (在Measure&Automation Explorer工具设备和接口中创建仿真设备)。将采样数据存入指定队列[1]中。数据源程序[2]框图如图1所示。
其次进行存储字段的设计。在TDMS数据文件中,数据的存储字段包括时间和对应的值。为保证数据存储单元的一致性,本文对SQL Server 2000和Access 2003的存储字段设计如表1所示。
表1 存储字段设计
最后设计存储程序。Access与SQL Server 2000存储VI的程序框图如图1所示,这里对LabSQL工具包以及数据库连接工具包分别进行测试。图2是使用LabSQL工具包进行数据库存储的程序框图 (对Access以及SQL Server2000均适用)。TDMS存储 VI设计与前者类似。
图2 使用LabSQL工具包进行数据库存储程序框图
存储单元 (SaveUnit)内部设计。图3为使用Parameterized SQL Query方法编写的存储单元程序。而使用SQL Query方法以及LabSQL工具包的SQL Execute子VI使用方式相同,读者可参考LabVIEW相关的示例程序。
程序运行成功后,将存储程序VI的执行系统设置为 “仪器 IO”配置,VI优先级设置为 “标准”。重启LabVIEW进行在线测试,以保证存储程序在单线程模式下运行。
2 测试分析
在双核台式机上进行的测试分析。CPU的主频为2.0 GHz,测试的主要指标有CPU使用率、磁盘读速率以及磁盘写速率。
图4为在采样率为 1 050 Hz时,Access、SQL Server 2000(使用LabSQL工具包中的前述存储方法)以及TDMS数据存储各项测试指标的对比 (由于数据采集VI耗费的CPU极少,不进行磁盘读写,这里可认为各项指标均反映数据存储VI的运行情况)。这里通过增大数据源程序中DAQmx读取VI的每通道采样数,可使CPU使用率。
图4 存储指标对比
表2为使用数据库连接工具包中的Parameterized SQL Query和SQL Query以及LabSQL工具包中的SQL Execute子VI进行数据库存储的各项性能统计。
图3 使用Parameterized SQL Query编写的存储单元程序
表2 数据库存储性能统计
对每种方法进行了反复测试,各种指标相对稳定,最大采样率的误差不超过100 Hz。
从本文的研究可以发现,使用不同的数据库和存储算法,存储性能差异很大。希望本文的研究能为广大应用LabVIEW的研究人员提供参考,提高软件各项性能指标。
[1]阮奇桢.我和 LabVIEW[M].北京:北京航空航天大学出版社,2009:146-147.
[2]白云,高玉鹏,胡小江.基于 LabVIEW的数据采集与处理技术[M].西安:西安电子科技大学出版社,2009:59-64.