LABVIEW深入探索之MDB數(shù)據(jù)庫(kù)寫入速度問(wèn)題。
一旦你每秒采樣數(shù)超過(guò)一定限度時(shí),無(wú)論你采用何種編程方式,如何優(yōu)化你的程序,在超過(guò)一定限度后,都是不可能實(shí)現(xiàn)的,在這種情況下,討論如何解決就毫無(wú)意義了。
本文引用地址:http://cafeforensic.com/article/201701/337248.htm隊(duì)列主要有三方面的用途,并行、解除耦合和解決忙先不均。在高速采集時(shí),隊(duì)列只是起到了并行的作用。由于采集的速度遠(yuǎn)大于數(shù)據(jù)庫(kù)的寫入速度,這種情況下,使用數(shù)據(jù)庫(kù)本身就是一個(gè)錯(cuò)誤的選擇,是不可能實(shí)現(xiàn)的。
下面我利用LABVIEW本身的數(shù)據(jù)庫(kù)例程,稍微改動(dòng)一下,測(cè)試數(shù)據(jù)庫(kù)的寫入速度。LABVIEW數(shù)據(jù)工具包提供三種不同的寫入數(shù)據(jù)方式。
1、自動(dòng)方式。利用“插入數(shù)據(jù)”VI。
2、利用SQL查詢方式。
3、利用SQL參數(shù)化查詢。
這三種方式中,SQL查詢方式速度明顯是最快的。SQL參數(shù)化查詢和自動(dòng)方式非常接近,SQL參數(shù)化查詢比自動(dòng)化方式略快一些。
在我的計(jì)算機(jī)中,寫入10000條記錄,SQL查詢方式約為20秒,其它方式約為30秒。也就是說(shuō)使用MDB數(shù)據(jù)庫(kù),每秒最快寫入約500條記錄。
我寫入的記錄數(shù)據(jù)量是很小的,如果記錄中存儲(chǔ)的數(shù)據(jù)量很大,速度還要慢。所以,使用數(shù)據(jù)庫(kù)僅僅適合與低速采集,對(duì)中高速采集是不可能實(shí)現(xiàn)的。
LABVIEW的DSC工具包采用了通用數(shù)據(jù)庫(kù),因?yàn)槌S玫膾呙柚芷跒?00MS,這是沒(méi)有問(wèn)題的。對(duì)于中高速采集,提供了TMDS存儲(chǔ)方式。即使采用TDMS方式,也必須在一定限度之內(nèi),畢竟最終的速度還是取決于硬件設(shè)備。
評(píng)論