999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQLite在飛艇監(jiān)控中的應(yīng)用與優(yōu)化?

2014-03-21 08:27:55王春艷
關(guān)鍵詞:數(shù)據(jù)庫(kù)系統(tǒng)

王春艷,李 帥

(中國(guó)電子科技集團(tuán)公司第三十八研究所,安徽合肥230088)

0 引言

隨著現(xiàn)代科學(xué)技術(shù)的進(jìn)步,臨近空間獨(dú)特的資源優(yōu)勢(shì)已成為各國(guó)關(guān)注的熱點(diǎn),平流層飛艇運(yùn)行在臨近空間底部,依靠空氣靜浮力駐空,具有可定點(diǎn)和機(jī)動(dòng)巡航、駐空時(shí)間長(zhǎng)、載重量大、可重復(fù)使用等特點(diǎn),在區(qū)域防災(zāi)減災(zāi)、環(huán)境監(jiān)測(cè)、城市安全監(jiān)控、高分辨率實(shí)時(shí)區(qū)域監(jiān)視、預(yù)警和導(dǎo)彈防御、區(qū)域通信等方面具有重要的用途,作為一種新型信息平臺(tái),引起了世界上發(fā)達(dá)國(guó)家的廣泛關(guān)注。

利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)對(duì)飛艇運(yùn)行遠(yuǎn)程監(jiān)視和測(cè)控,確保飛艇的安全運(yùn)行是目前研究的重要方向。在飛艇飛行任務(wù)中,飛艇姿態(tài)的數(shù)據(jù)監(jiān)測(cè)和測(cè)控實(shí)時(shí)處理顯得尤為重要,能夠協(xié)助工程技術(shù)人員準(zhǔn)確地掌握飛艇運(yùn)行態(tài)勢(shì),正確地分析運(yùn)行過(guò)程和有效地指揮控制飛艇運(yùn)行。數(shù)據(jù)庫(kù)負(fù)責(zé)整個(gè)監(jiān)控系統(tǒng)的數(shù)據(jù)存儲(chǔ)工作[1],是整個(gè)測(cè)控系統(tǒng)的重要組成部分。通常情況下,商業(yè)數(shù)據(jù)庫(kù)需要專業(yè)的數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行管理且系統(tǒng)龐大,非常占用系統(tǒng)資源,使得設(shè)計(jì)系統(tǒng)復(fù)雜,影響了系統(tǒng)的運(yùn)行效率,考慮飛艇遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)需求和整個(gè)系統(tǒng)的性能,本文提出了在飛艇監(jiān)控中使用輕量級(jí)數(shù)據(jù)庫(kù)系統(tǒng)SQLite的方案。

1 飛艇測(cè)控系統(tǒng)設(shè)計(jì)要求

飛艇測(cè)控系統(tǒng)應(yīng)實(shí)現(xiàn)以下幾種功能:

(1)數(shù)據(jù)采集和存儲(chǔ)。數(shù)據(jù)采集主要是由艇上飛控系統(tǒng)完成,通過(guò)兩塊飛控計(jì)算機(jī)(主控和備控)板,將采集的各種參數(shù)信息定時(shí)通過(guò)無(wú)線網(wǎng)絡(luò)傳輸?shù)降孛鏈y(cè)控計(jì)算機(jī)上的嵌入式服務(wù)器中進(jìn)行分析和存儲(chǔ)。

(2)歷史數(shù)據(jù)查詢。根據(jù)用戶輸入的查詢信息,查找數(shù)據(jù)庫(kù)中的相關(guān)數(shù)據(jù),提供給管理人員分析,對(duì)當(dāng)前能源系統(tǒng)的使用狀態(tài)和壽命進(jìn)行評(píng)估,對(duì)各執(zhí)行機(jī)構(gòu)的能效進(jìn)行風(fēng)險(xiǎn)評(píng)估,預(yù)測(cè)出當(dāng)前存在的潛在危險(xiǎn),在飛艇失效時(shí)進(jìn)行故障診斷、歸零分析,輔助尋找故障根源。

(3)遠(yuǎn)程控制功能。在系統(tǒng)遙控模式下,用戶遠(yuǎn)程對(duì)設(shè)備進(jìn)行控制,通過(guò)無(wú)線傳輸向艇上飛控系統(tǒng)發(fā)生控制指令,并將控制信息和回饋信息進(jìn)行存儲(chǔ)。

(4)設(shè)備自控參數(shù)設(shè)置。完成在自控模式下對(duì)設(shè)備的臨界值進(jìn)行設(shè)定,如果監(jiān)測(cè)數(shù)據(jù)超出了臨界范圍,發(fā)送報(bào)警信號(hào)或作出相應(yīng)的控制。

(5)整機(jī)狀態(tài)監(jiān)測(cè)。實(shí)現(xiàn)遠(yuǎn)程監(jiān)視整機(jī)運(yùn)行狀態(tài),包括飛艇各姿態(tài)數(shù)據(jù)顯示、各氣囊壓力指示,能源余量預(yù)估顯示以及全部設(shè)備運(yùn)行狀態(tài)與告警。

(6)用戶信息管理。用戶信息管理是系統(tǒng)中所需實(shí)現(xiàn)的一項(xiàng)最基本的功能,為系統(tǒng)提供了安全保障,可以有效防止非法用戶進(jìn)入系統(tǒng)查看數(shù)據(jù)。

遠(yuǎn)程測(cè)控系統(tǒng)的總體目標(biāo)是實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的結(jié)構(gòu)化管理[2],最大化共享網(wǎng)絡(luò)資源,最終達(dá)到異地實(shí)時(shí)遠(yuǎn)程測(cè)控的目的,通過(guò)簡(jiǎn)單的控制和操作完成遠(yuǎn)程測(cè)控功能,運(yùn)行時(shí)的各種狀態(tài)參數(shù)數(shù)據(jù)和控制參數(shù)實(shí)時(shí)存儲(chǔ)、分析,輔助工程技術(shù)人員提前決策。

2 SQLite數(shù)據(jù)庫(kù)在飛艇監(jiān)控中的設(shè)計(jì)

2.1 SQLite數(shù)據(jù)庫(kù)技術(shù)

SQLite是一個(gè)輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù),具有三級(jí)模式的結(jié)構(gòu)體系,即用戶模式、邏輯模式和存儲(chǔ)模式。相對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù),SQLite具有更好的實(shí)時(shí)性、系統(tǒng)開(kāi)銷小、底層控制能力強(qiáng)。SQLite能夠高效地利用有限資源,提高數(shù)據(jù)的存取速度,增強(qiáng)系統(tǒng)的安全性,并具有如下關(guān)鍵特點(diǎn):

(1)零配置。SQLite在使用前不需要安裝設(shè)置,不需要進(jìn)程來(lái)啟動(dòng)、停止或配置,不需要管理員去創(chuàng)建新數(shù)據(jù)庫(kù)或分配用戶權(quán)限,在系統(tǒng)崩潰或失電之后自動(dòng)恢復(fù)。

(2)支持絕大多數(shù)SQL-92標(biāo)準(zhǔn)的SQL命令,支持視圖、觸發(fā)器,支持嵌套SQL,具有事務(wù)處理功能,自動(dòng)維護(hù)事務(wù)的完整性、原子性等特性,支持實(shí)體完整性和參照完整性。

(3)零配置的數(shù)據(jù)庫(kù)引擎和安裝。使用SQLite時(shí),訪問(wèn)數(shù)據(jù)庫(kù)的程序直接從磁盤上的數(shù)據(jù)庫(kù)文件讀寫,沒(méi)有中間的服務(wù)器進(jìn)程。

(4)支持多種開(kāi)發(fā)語(yǔ)言和數(shù)據(jù)庫(kù)平臺(tái)無(wú)關(guān)性,支持大多數(shù)計(jì)算機(jī)語(yǔ)言,支持 Windows/Linux/Unix/Mac OS等主流的操縱系統(tǒng),可實(shí)現(xiàn)數(shù)據(jù)庫(kù)文件在機(jī)器之間自由共享。

(5)精簡(jiǎn)性與簡(jiǎn)單訪問(wèn)。優(yōu)化后整個(gè)SQLite庫(kù)小于225 KB。一個(gè)SQLite數(shù)據(jù)庫(kù)是一個(gè)單獨(dú)的普通磁盤文件,能夠被定位在路徑層次的任何地方。

(6)數(shù)據(jù)存儲(chǔ)量大。數(shù)據(jù)存儲(chǔ)在單個(gè)物理文件中,支持2 TB的數(shù)據(jù)存儲(chǔ)。

(7)源碼完全開(kāi)放。使用者可用于任何非商業(yè)和商業(yè)用途。

2.2 SQLite數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

SQLite采用模塊化的設(shè)計(jì),主要由4個(gè)部分組成:內(nèi)核(Core)、SQL編譯器(SQL Compiler)、后端(Backend)以及附件(Accessories),內(nèi)部結(jié)構(gòu)如圖1所示[3]。

圖1 SQLite體系結(jié)構(gòu)圖

SQLite接口是一些已經(jīng)編寫好的C庫(kù),SQL語(yǔ)句通過(guò)接口進(jìn)入到高效的SQL編譯器,由標(biāo)記處理器分解成分析器可以識(shí)別的各個(gè)標(biāo)志符,然后由分析器重新組合標(biāo)志符并調(diào)用代碼生成器生成虛擬機(jī)器碼,交由虛擬機(jī)去執(zhí)行,最終完成SQL語(yǔ)句指定的任務(wù)。虛擬機(jī)是SQLite內(nèi)部結(jié)構(gòu)的核心,不僅完成與數(shù)據(jù)操作相關(guān)的全部操作,而且還是客戶和存儲(chǔ)之間信息進(jìn)行交換的中間單元。數(shù)據(jù)庫(kù)按照B樹(shù)(Btree)的形式存儲(chǔ)在磁盤上,通過(guò)可調(diào)整的頁(yè)面緩沖獲得對(duì)數(shù)據(jù)的快速查找和存儲(chǔ)。為了方便移植,SQLite使用一個(gè)抽象層接口(OS interface)與不同操作系統(tǒng)進(jìn)行對(duì)接。

2.3 SQLite數(shù)據(jù)庫(kù)在監(jiān)控系統(tǒng)中的部署

SQLite數(shù)據(jù)庫(kù)直接部署在測(cè)控系統(tǒng)節(jié)點(diǎn)上,如圖2所示。艇上部署兩個(gè)飛控計(jì)算機(jī),相互作為備份控制,將艇上采集的各類傳感器數(shù)據(jù)定時(shí)傳輸給地面測(cè)控系統(tǒng),遙控模式下接收地面測(cè)控計(jì)算機(jī)發(fā)來(lái)的人工干預(yù)指令,控制各分系統(tǒng)設(shè)備,并將參數(shù)回送給地面測(cè)控計(jì)算機(jī);自控模式下根據(jù)測(cè)控系統(tǒng)設(shè)置的臨界值進(jìn)行自動(dòng)控制各設(shè)備。測(cè)控系統(tǒng)中所有接收的檢測(cè)數(shù)據(jù)和發(fā)送的控制操作均作為關(guān)鍵數(shù)據(jù),保存到數(shù)據(jù)庫(kù)服務(wù)器中。操作人員可以使用不同的終端登錄,查詢和分析整機(jī)監(jiān)測(cè)數(shù)據(jù)[4]。

圖2 測(cè)控系統(tǒng)數(shù)據(jù)庫(kù)部署

3 數(shù)據(jù)庫(kù)優(yōu)化

直接使用SQLite執(zhí)行一條SQL的插入語(yǔ)句時(shí)延范圍在100 ms以上,實(shí)驗(yàn)表明在頻繁記錄采集數(shù)據(jù)時(shí),這樣的數(shù)據(jù)錄入效率將嚴(yán)重影響記錄節(jié)點(diǎn)的運(yùn)行[5],錄入過(guò)程耗時(shí)過(guò)長(zhǎng),對(duì)于長(zhǎng)時(shí)間的數(shù)據(jù)采集任務(wù),有內(nèi)存消耗過(guò)多或內(nèi)存不足的潛在問(wèn)題[5]。

本文重點(diǎn)從以下三個(gè)方面進(jìn)行優(yōu)化處理:

(1)對(duì)大批量數(shù)據(jù)入庫(kù)操作進(jìn)行綜合優(yōu)化,縮短數(shù)據(jù)錄入時(shí)間;

(2)優(yōu)化數(shù)據(jù)庫(kù)單次插入數(shù)據(jù)的延時(shí);

(3)采用多線程并發(fā)處理技術(shù),數(shù)據(jù)采集處理和數(shù)據(jù)存儲(chǔ)同時(shí)進(jìn)行。

3.1 內(nèi)存數(shù)據(jù)庫(kù)

SQLite的內(nèi)存數(shù)據(jù)庫(kù)模式就是直接將數(shù)據(jù)庫(kù)創(chuàng)建在內(nèi)存中,相對(duì)于磁盤,內(nèi)存的數(shù)據(jù)讀寫速度要高出幾個(gè)數(shù)量級(jí),將數(shù)據(jù)保存在內(nèi)存中相比從磁盤上訪問(wèn)能夠極大地提高應(yīng)用的性能。

采用內(nèi)存數(shù)據(jù)庫(kù),在不進(jìn)行任何優(yōu)化時(shí)的單次數(shù)據(jù)錄入時(shí)間與優(yōu)化后的磁盤數(shù)據(jù)庫(kù)基本相當(dāng)。因此在存儲(chǔ)采集數(shù)據(jù)時(shí)采用內(nèi)存數(shù)據(jù)庫(kù)的模式實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)錄入。

3.2 使用事物

在數(shù)據(jù)庫(kù)管理系統(tǒng)中,事務(wù)(Transaction)被定義為對(duì)特定數(shù)據(jù)庫(kù)的一組SQL操作,這組對(duì)數(shù)據(jù)庫(kù)的操作要么全部執(zhí)行,要么都不執(zhí)行。在SQLite中每一條插入/更新(INSERT/UPDATE)語(yǔ)句都默認(rèn)的被當(dāng)作一個(gè)事務(wù)執(zhí)行,每一次執(zhí)行就涉及一次打開(kāi)數(shù)據(jù)庫(kù)、寫數(shù)據(jù)庫(kù)、關(guān)閉數(shù)據(jù)庫(kù)的操作,大大延長(zhǎng)了數(shù)據(jù)庫(kù)操作的時(shí)間,因此,可以將批量的插入/更新操作顯式的定義為一組事務(wù),在批量錄入之前指定事務(wù)開(kāi)始處理,執(zhí)行語(yǔ)句為:sqlite3_exec(pSQLiteDB,"BEGIN",0,0,&zErr Msg);在所有數(shù)據(jù)錄入完畢之后指定事物提交處理,執(zhí)行語(yǔ)句為:sqlite3_exec(pSQLiteDB,"BEGIN",0,0,&zErr Msg),其中pSQLiteDB表示數(shù)據(jù)庫(kù)連接對(duì)象,"BEGIN"表示開(kāi)始事物處理,"COMMIT"表示提交事物處理。

3.3 關(guān)閉synchronous選項(xiàng)

SQLite支持事物的一個(gè)重要特性就是“原子提交”,意味著一個(gè)事物中的所有操作動(dòng)作要么全部發(fā)生,要么都不發(fā)生。SQLite的同步(synchronous)選項(xiàng)相當(dāng)于一種同步IO機(jī)制,所有對(duì)數(shù)據(jù)庫(kù)的修改都必須等待本次操作寫入到磁盤上后才返回。當(dāng)頻繁地對(duì)數(shù)據(jù)庫(kù)進(jìn)行INSERT/UPDATE操作時(shí),可以選擇關(guān)閉同步選項(xiàng),執(zhí)行語(yǔ)句為:SQLite3_exec(pSQLiteDB,"PRAGMASYNCHRONOUS=OFF",NULL,NULL,&zErr Msg),待所有事物提交后一次性更新磁盤數(shù)據(jù)庫(kù)。

經(jīng)過(guò)測(cè)試證明,關(guān)閉同步選項(xiàng)后,數(shù)據(jù)錄入操作時(shí)間可再縮短100 ms左右。

3.4 更改日志記錄模式

SQLite中日志是在系統(tǒng)遇到關(guān)機(jī)或斷電時(shí)用來(lái)恢復(fù)數(shù)據(jù)庫(kù),保持?jǐn)?shù)據(jù)庫(kù)完整性的措施,默認(rèn)情況下日志是隨著對(duì)數(shù)據(jù)庫(kù)的操作一起寫入磁盤的,SQLite中日志記錄模式修改為內(nèi)存記錄模式“MEMORY”,即不產(chǎn)生任何單獨(dú)的數(shù)據(jù)庫(kù)日志文件,所有的操作日志存儲(chǔ)于內(nèi)存中,更改SQLite默認(rèn)日志模式為內(nèi)存記錄模式,執(zhí)行語(yǔ)句為:“SQLite3_exec(pSQLiteDB,"PRAGMA JOURNAL_MODE=MEMORY",NULL,NULL,&zErr Msg)”,可以提高單次INSERT操作的效率。

4 結(jié)束語(yǔ)

嵌入式數(shù)據(jù)庫(kù)SQLite在飛艇運(yùn)行監(jiān)控系統(tǒng)中的應(yīng)用克服了使用傳統(tǒng)商業(yè)數(shù)據(jù)庫(kù)時(shí)系統(tǒng)開(kāi)發(fā)難度大,使用維護(hù)不方便[6]。由于SQLite數(shù)據(jù)庫(kù)使用簡(jiǎn)單,不需要專門的數(shù)據(jù)庫(kù)管理引擎,存取速度快,性能穩(wěn)定,完全滿足了飛艇監(jiān)控系統(tǒng)管理監(jiān)控?cái)?shù)據(jù)的需求。本文通過(guò)三點(diǎn)優(yōu)化策略切實(shí)地提高SQLite數(shù)據(jù)庫(kù)訪問(wèn)速度的方案,使SQLite數(shù)據(jù)庫(kù)的性能滿足飛艇飛行遠(yuǎn)程監(jiān)控中實(shí)時(shí)數(shù)據(jù)錄入需求。同時(shí)也證明了SQLite在功能和性能上可以很好地取代目前使用傳統(tǒng)商業(yè)數(shù)據(jù)庫(kù),降低了商業(yè)投入成本和維護(hù)成本。

[1]蔡勇,王勇.嵌入式數(shù)據(jù)庫(kù)SQLite在測(cè)控系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].電子測(cè)試,2011(10):89-93.

[2]陳曉東,曹奇英.嵌入式數(shù)據(jù)庫(kù)SQLite的遠(yuǎn)程可視化維護(hù)管理工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(8):106-107.

[3](美)ALLEN G,OWENS M.SQLite權(quán)威指南(第2版)[M].北京:電子工業(yè)出版社,2012:21-137.

[4]李海貴,孫俊平.通用雷達(dá)數(shù)據(jù)處理系統(tǒng)仿真測(cè)試平臺(tái)設(shè)計(jì)[J].雷達(dá)科學(xué)與技術(shù),2010,8(4):339-342.

[5]周帆.SQLite在半實(shí)物仿真系統(tǒng)中的應(yīng)用與優(yōu)化[J].彈箭與制導(dǎo)學(xué)報(bào),2013,33(1):167-170.

[6]黃德才.數(shù)據(jù)庫(kù)原理及其應(yīng)用(第3版)[M].北京:科學(xué)出版社,2010:19-154.

猜你喜歡
數(shù)據(jù)庫(kù)系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 国产精品人成在线播放| 久草视频中文| 欧美一级视频免费| 一级毛片免费高清视频| 久久成人18免费| 欧美第九页| 国产成人一级| www成人国产在线观看网站| 青青草国产免费国产| 91视频精品| 久久公开视频| 激情综合网址| 国产SUV精品一区二区| 日本国产精品一区久久久| 4虎影视国产在线观看精品| 国产精品自在自线免费观看| 免费jizz在线播放| 国产在线精品人成导航| 女人爽到高潮免费视频大全| 欧美高清三区| 免费人成网站在线观看欧美| 网久久综合| 亚洲女人在线| 亚洲综合色区在线播放2019| 99这里只有精品6| 依依成人精品无v国产| 国产日韩精品欧美一区喷| 免费国产不卡午夜福在线观看| 一本大道视频精品人妻| 亚洲精品手机在线| 国产主播一区二区三区| 亚洲成人黄色在线| 久久精品免费国产大片| 亚洲最新地址| 3D动漫精品啪啪一区二区下载| 波多野结衣在线一区二区| 99视频全部免费| 久久香蕉欧美精品| 欧美伦理一区| 国产日韩丝袜一二三区| 国产精品无码翘臀在线看纯欲| 国产成熟女人性满足视频| 国产精品免费入口视频| 国产女人在线视频| 亚洲va欧美va国产综合下载| а∨天堂一区中文字幕| 久久伊人色| 免费一级成人毛片| www.狠狠| 国产精品视频白浆免费视频| 国产高清无码麻豆精品| 无码内射中文字幕岛国片| 国产成人亚洲综合a∨婷婷| 91年精品国产福利线观看久久| 91国内在线视频| Jizz国产色系免费| 性69交片免费看| 激情综合激情| 国产精彩视频在线观看| 亚洲狼网站狼狼鲁亚洲下载| 久久免费观看视频| 久久国产精品波多野结衣| 日日碰狠狠添天天爽| 超碰91免费人妻| 91精品网站| h网址在线观看| 激情国产精品一区| 日本久久久久久免费网络| 91色爱欧美精品www| 色综合久久综合网| 亚洲欧美人成人让影院| 日韩av在线直播| 国产精品深爱在线| 天天视频在线91频| 天天综合网站| 欧美成人A视频| 国产永久无码观看在线| 国产精品成| 麻豆国产原创视频在线播放| 99久久婷婷国产综合精| 国产亚洲视频免费播放| 国产一区二区三区免费|