摘 要: 針對Access、SQL Server 2000以及LabVIEW自帶的TDMS數(shù)據(jù)庫進行了相關存儲性能的測試。對前兩種數(shù)據(jù)庫分別采用LabSQL和數(shù)據(jù)庫連接工具包所提供的算法進行了比較分析。
關鍵詞: LabVIEW編程;存儲性能;LabSQL;數(shù)據(jù)庫連接工具包
LabVIEW是一種虛擬儀器的主流開發(fā)平臺,它提供眾多輸入控件和顯示控件,使用戶方便地創(chuàng)建用戶界面。LabVIEW不僅可與數(shù)據(jù)采集、視覺、運動控制設備等硬件通信,還可以與PXI以及RS485等儀器通信。應用LabVIEW開發(fā)的系統(tǒng)正越來越廣泛地應用于各個領域。LabSQL工具包與數(shù)據(jù)庫連接工具包(Database Connectivity Tookit)都是基于Microsoft ADO和SQL的LabVIEW 數(shù)據(jù)庫訪問工具包,利用它們幾乎可以訪問任何類型的數(shù)據(jù)庫,執(zhí)行各種SQL查詢,對記錄進行各種操作。TDMS(Technical Data Management Streaming)文件是NI主推的一種二進制記錄文件,它兼顧了高速、易存取和方便等多種優(yōu)勢,能夠在NI的各種數(shù)據(jù)分析或挖掘軟件之間進行無縫交互,并提供一系列API函數(shù)供其他應用程序調用。
1 測試方案設計
首先進行數(shù)據(jù)源設計。設置數(shù)據(jù)源的具體方法是編輯一個數(shù)據(jù)源VI,建立一個DAQmx采樣任務,采樣設備可為一個仿真DAQmx設備(在Measure & Automation Explorer工具設備和接口中創(chuàng)建仿真設備)。將采樣數(shù)據(jù)存入指定隊列[1]中。數(shù)據(jù)源程序[2]框圖如圖1所示。
其次進行存儲字段的設計。在TDMS數(shù)據(jù)文件中,數(shù)據(jù)的存儲字段包括時間和對應的值。為保證數(shù)據(jù)存儲單元的一致性,本文對SQL Server 2000和Access 2003的存儲字段設計如表1所示。
最后設計存儲程序。Access與SQL Server 2000存儲VI的程序框圖如圖1所示,這里對LabSQL工具包以及數(shù)據(jù)庫連接工具包分別進行測試。圖2是使用LabSQL工具包進行數(shù)據(jù)庫存儲的程序框圖(對Access以及SQL Server 2000均適用)。TDMS存儲VI設計與前者類似。
存儲單元(Save Unit)內(nèi)部設計。圖3為使用Parameterized SQL Query方法編寫的存儲單元程序。而使用SQL Query方法以及LabSQL工具包的SQL Execute子VI使用方式相同,讀者可參考LabVIEW相關的示例程序。
程序運行成功后,將存儲程序VI的執(zhí)行系統(tǒng)設置為“儀器IO”配置,VI優(yōu)先級設置為“標準”。重啟LabVIEW進行在線測試,以保證存儲程序在單線程模式下運行。
2 測試分析
在雙核臺式機上進行的測試分析。CPU的主頻為2.0 GHz,測試的主要指標有CPU使用率、磁盤讀速率以及磁盤寫速率。
圖4為在采樣率為1 050 Hz時,Access、SQL Server 2000(使用LabSQL工具包中的前述存儲方法)以及TDMS數(shù)據(jù)存儲各項測試指標的對比(由于數(shù)據(jù)采集VI耗費的CPU極少,不進行磁盤讀寫,這里可認為各項指標均反映數(shù)據(jù)存儲VI的運行情況)。這里通過增大數(shù)據(jù)源程序中DAQmx讀取VI的每通道采樣數(shù),可使CPU使用率降低到5%以內(nèi)。
表2為使用數(shù)據(jù)庫連接工具包中的Parameterized SQL Query和SQL Query以及LabSQL工具包中的SQL Execute子VI進行數(shù)據(jù)庫存儲的各項性能統(tǒng)計。
對每種方法進行了反復測試,各種指標相對穩(wěn)定,最大采樣率的誤差不超過100 Hz。
從本文的研究可以發(fā)現(xiàn),使用不同的數(shù)據(jù)庫和存儲算法,存儲性能差異很大。希望本文的研究能為廣大應用LabVIEW的研究人員提供參考,提高軟件各項性能指標。
參考文獻
[1] 阮奇楨.我和LabVIEW[M].北京:北京航空航天大學出版社,2009:146-147.
[2] 白云,高玉鵬,胡小江.基于LabVIEW的數(shù)據(jù)采集與處理技術[M].西安:西安電子科技大學出版社,2009:59-64.