近日在LABVIEW的群中,看到几次讨论利用队列把采集的数据写入到数据库的问题,讨论非常热烈,但是他们忽略了一个重要的问题,就是数据库的最大写入速度的问题。
一旦你每秒采样数超过一定限度时,无论你采用何种编程方式,如何优化你的程序,在超过一定限度后,都是不可能实现的,在这种情况下,讨论如何解决就毫无意义了。
队列主要有三方面的用途,并行、解除耦合和解决忙先不均。在高速采集时,队列只是起到了并行的作用。由于采集的速度远大于数据库的写入速度,这种情况下,使用数据库本身就是一个错误的选择,是不可能实现的。
下面我利用LABVIEW本身的数据库例程,稍微改动一下,测试数据库的写入速度。LABVIEW数据工具包提供三种不同的写入数据方式。
1、自动方式。利用“插入数据”VI。
2、利用SQL查询方式。
3、利用SQL参数化查询。
这三种方式中,SQL查询方式速度明显是最快的。SQL参数化查询和自动方式非常接近,SQL参数化查询比自动化方式略快一些。
在我的计算机中,写入10000条记录,SQL查询方式约为20秒,其它方式约为30秒。也就是说使用MDB数据库,每秒最快写入约500条记录。
我写入的记录数据量是很小的,如果记录中存储的数据量很大,速度还要慢。所以,使用数据库仅仅适合与低速采集,对中高速采集是不可能实现的。
LABVIEW的DSC工具包采用了通用数据库,因为常用的扫描周期为100MS,这是没有问题的。对于中高速采集,提供了TMDS存储方式。即使采用TDMS方式,也必须在一定限度之内,毕竟最终的速度还是取决于硬件设备。
关键字:LABVIEW MDB数据库 写入速度
引用地址:
LABVIEW深入探索之MDB数据库写入速度问题。
推荐阅读最新更新时间:2024-03-30 23:03
Labview之数据类型
今天在看程序的时候,按照书上的例子我老是做不对,最后发现,是数据类型的问题。痛定思痛,将所有数据类型做了一个表格的形式,这样更方便查看。
[测试测量]
基于LabVIEW与凌阳SPCE061A实现串口数据采集
引言 LabVIEW是一个划时代的图形化编程系统,应用于数据采集与控制、信号分析等方面,它为不熟悉文本语言编程的专业科技工作者在测控领域建立计算机仪器系统——虚拟仪器,提供了一个便捷、轻松的图形化设计环境。由于其灵活、简单易用、开发效率高等特点,正逐渐成为科技工作者进行仪器应用与开发的得力工具。数据采集是开发过程中一个重要的环节,NI公司提供了各种不同类型的基于LabVIEW的数据采集卡,但是其价格昂贵,对于小型企业、实验教学等方面仍存在着不可避免的资金问题。而市面上销售的第三方开发的数据采集卡,由于不具备对LabVIEW的直接支持,需要用户开发其驱动程序,使用也不方便。如果采用以凌阳16位单片机SPCE061A作为前端数据采集,
[测试测量]
NI发布最新CANopen LabVIEW函式库用于测控
National Instruments(NI)发表新推出的CANopen LabVIEW函式库,可协助工程师制作控制及测量应用程序,并连接多种CANopen设备,包括运动驱动器、传感器,以及分布式I/O。NI表示,该款函式库为高阶NI LabVIEW函数合辑,可以将高速NI Series 2 Controller Area Network (CAN)设备,转换成全功能的CANopen主要接口。 透过CANopen LabVIEW 函式库内附的图形化LabVIEW应用程序设计接口(API),工程师可建立符合CAN in Automation (CiA) DS301标准的CANopen主应用程序。NI表示,CANopen是一款高阶
[新品]
基于LabVIEW的信号输出与数据采集系统
1 引言 近年来,在国防、汽车、仪表等领域,嵌入式计算机系统的应用越来越广泛。由于目前硬件技术的迅猛发展以及容错技术的广泛应用,因硬件故障而导致的软件失效越来越少,系统故障的主要原因已经从硬件逐步转向软件。因此如何测试嵌入式计算机系统中的软件性能就成为人们关注的焦点,而这其中非常关键的就是如何在仿真环境下由仿真测试平台输出激励信号驱动嵌入式计算机系统运行并同时采集它的输出信号。本文正是基于此设计了一套基于LabVIEW的信号输出与数据采集系统。 2 LabVIEW简介 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是目前最为成功、应用
[工业控制]
LabVIEW控件——前面板对象
在虚拟仪器应用程序设计中,前面板往往会根据用户的要求放置一些外观样式不同的控件。这些直观、形象化的控件不仅起到美化前面板的作用,同时还实现了交互式人机对话的功能。这些控件在LabVIEW中也被称为前面板对象。 控件作为前面板上的对象有自己的独特的外观,同时引导图形化语言中的数据在前面板和程序框图中进行交换,并具有确定性的数据类型。这些对象还具有极其丰富的属性节点和方法节点以及可自定义的控件类型,这些辅助功能将使得程序设计变得更加灵活和方便。 正是由于控件 前面板上的对象,在图形化语言中表现出了重要的一些特性,所以我们不得不将其单独的列为一章来进行讨论。因为控件将涉及或影响到图形化语言中的很多概念。比如控件的基本性质是什么?它是
[测试测量]
labview的数据类型----通过类型描述符提取控件名称(LABEL)
通过分析类型描述符结构,我们已经得到的类型描述符的头部信息,我们知道,LV的存储结构中同时包括了控件的标签信息,看看如何能通过描述符得到控件的标签.OPENG中提供了这个功能,我们跟踪一下看看它实现的方法: 首先根据类型描述符头部信息中的类型码对LV的数据类型进行分类,每个CASE中的数据存储结构都是类似的. 先看看第一个CASE: 条件是: I8 .. CXT , Boolean , Variant ,这说明从I8--- CXT ,包括BOOLEAN VARIANT类型描述符的结构都是类似的.看看I8 和BOOLEAN的类型描述符的内容,我们分析一下. I8和BOOLEAN除了类型码不同(0X01,0X21)
[测试测量]
利用LabVIEW的热舒适测试系统方案
随着测试技术的发展及测试要求的不断提高,一些具有与计算机直接通信功能的高精度温湿度测试仪表已经在科研和工程中被广泛运用。然而对于整个测试系统而言,单个仪器本身存在一些限制:仪器本身只能显示某一时间点的数据,不能看到参数的实时变化趋势;仪器本身缺乏数据处理能力,而某些测试场合需要不同测量仪表所测参数进行计算而得出有利用价值的分析指标,比如PMV(预测平均评价)、PPD(预测不满意百分比);受仪器本身记忆卡内存的限制,仪器只能存储有限量个数据。与此同时,各个品牌的仪表与计算机通信的方式不完全相同,有RS 232串行通信、GPIB总线通信等。因此,如何把这些仪表整合到同一个平台上,开发一个功能强大的综合测试系统已成为一个新的工程应用方向。
[测试测量]
Labview簇
簇 簇是一种类似数组的数据结构,用于分组数据。簇和数组有着重要的差别,其中一个重要差别是,簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型。例如,一个数组可以包含10个数字指示器,一个簇却可以包含一个数字控件,一个开关和一个字符串控件。 尽管簇和数组的元素都是有序存放的,但访问簇的元素最好是通过释放的方法同时访问其中部分或全部元素,而不是通过索引一次访问一个元素。簇和数组的另一个差别是簇具有固定的大小。 簇通常用于将出现在框图上的有关数据元素分组管理。因为簇在框图中仅用唯一的连线表示,所以对于减少连线混乱和子VI需要的连接器端子个数,使用簇有着积极的效果。可以将簇看做是一捆连线,线缆中每一个连线表示簇的不同元素。在框图上
[测试测量]