熊偉
摘要:數(shù)據(jù)處理的基礎(chǔ)平臺就是數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)被廣泛應(yīng)用于各行各業(yè),而應(yīng)用軟件則是數(shù)據(jù)庫設(shè)計的基礎(chǔ)所在,其在數(shù)據(jù)庫設(shè)計中的使用頻率極高,可有效加強(qiáng)數(shù)據(jù)庫的各項功能,但如何提升其效率是必須要思考的問題,基于此,本文探討了提升數(shù)據(jù)庫應(yīng)用軟件運(yùn)行效率的主要原則,僅供同行參考和借鑒。
關(guān)鍵詞:數(shù)據(jù)庫;應(yīng)用軟件;效率
有非常多相關(guān)專業(yè)的研究人員都知道如何開發(fā)數(shù)據(jù)庫應(yīng)用軟件,但是卻不知如何開發(fā)應(yīng)用方便且效率高的系統(tǒng),因此必須要對系統(tǒng)的全方面進(jìn)行分析,并對數(shù)據(jù)庫進(jìn)行科學(xué)合理的設(shè)計,以及從軟件界面的友好性、運(yùn)行效率與安全性方面等進(jìn)行綜合考慮。
1.全局?jǐn)?shù)據(jù)庫連接
針對常見的管理信息編程系統(tǒng),因為其經(jīng)常性的與數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)交換,且數(shù)據(jù)庫開始工作后不管是從連接時間來看,還是從斷開時間來看,時間均較長[1],所以最好在使用的軟件系統(tǒng)啟動時,就構(gòu)建與數(shù)據(jù)庫的有效連接,如果想要斷開連接,必須要等到系統(tǒng)退出之后才可以,如果想在其他的時間使用數(shù)據(jù)庫,那么也不需要重新進(jìn)行連接,只需要運(yùn)用當(dāng)前已有的全局連接就可以。全局?jǐn)?shù)據(jù)庫連接這一原則,主要適用于部分管理的軟件系統(tǒng)中,在某些特殊環(huán)境下可能會運(yùn)用使用過程中連接的方式。
2.降低一次檢索集合數(shù)據(jù)量
該原則的主要含義就是指檢索工作中可以用到的業(yè)務(wù)數(shù)據(jù)集,而對于那些用不到的數(shù)據(jù)集則不用進(jìn)行檢索,以下是一個出入庫的單據(jù)審核界面(如下圖一)。
此界面的主要功能就是有效且明確的審核沒有審核過的單據(jù),并且為使操作更為便捷列出已經(jīng)審核通過的單據(jù)[2]。然而因為已經(jīng)經(jīng)過審核的單據(jù)會伴隨著時間的變化而不斷增多,若編程過程中對此問題不予以重視,會導(dǎo)致系統(tǒng)運(yùn)行一段時間后出現(xiàn)速度變慢的情況,通常情況下用戶也不需要對以往的數(shù)據(jù)信息進(jìn)行查詢,所以針對于相似的界面設(shè)計應(yīng)檢索工作中可以用到的業(yè)務(wù)數(shù)據(jù)集[3]。而對于已經(jīng)通過審核并已出庫的單據(jù)應(yīng)延長時間的約束,也就是說,只需要檢索最近一段時間的記錄就可以。針對需要較長時間檢索以往信息的界面,必須要進(jìn)行單獨(dú)設(shè)計。
3.使用時才執(zhí)行
該原則主要是指系統(tǒng)數(shù)據(jù)進(jìn)行獲取時只有到了必要或者使用的情況下才進(jìn)行,而并不是將該項工作提前完成[4]。此次研究對樹形控件的使用為例,在管理信息系統(tǒng)編程中,結(jié)構(gòu)信息出現(xiàn)的次數(shù)非常多,例如:產(chǎn)品的結(jié)構(gòu)信息、部門人事的信息、客戶地區(qū)的信息等等,其相關(guān)的特征就是存有一定的“父子關(guān)系”,而此種功能最為直接的表示即樹形控件,現(xiàn)階段所運(yùn)用的可視化開發(fā)工具基本都支持樹形控件。該控件的實現(xiàn)其開發(fā)工具不同實現(xiàn)也存在差異,但是相關(guān)編程人員的思想是保持一致的,也就是說從數(shù)據(jù)庫中每獲得一點(diǎn)數(shù)據(jù)信息,之后就讓獲取道德數(shù)據(jù)信息插入到樹節(jié)點(diǎn)上。通常有以下兩種表現(xiàn)形式,其一為界面-打開,立刻就可提取樹形控件上的數(shù)據(jù),且能將所有節(jié)點(diǎn)構(gòu)造好。其二為將界面打開時,只提取第一層或者第二層的數(shù)據(jù),然后完成節(jié)點(diǎn)的構(gòu)造工作,而對于別的節(jié)點(diǎn),是在用戶使用的時候才進(jìn)行數(shù)據(jù)提取及節(jié)點(diǎn)構(gòu)造的[5]。前一種方式將所有數(shù)據(jù)進(jìn)行了全部的提取,之后工作中使用的速度也比較快,但是如果數(shù)據(jù)量增大到一定范圍,那么窗口打開的過程則會變慢。后一種方式主要是在用戶使用的過程中才會打開,所以系統(tǒng)的整體效率比較高,通常情況下也不會伴隨著數(shù)據(jù)的增多,而出現(xiàn)變慢的情況。
4.變單行循環(huán)檢索為批檢索
編程過程中,碰到較為繁雜的業(yè)務(wù)邏輯是非常常見的一種現(xiàn)象,運(yùn)用一般的SQL語句并不能將所有需要的結(jié)果一次性獲取到。有一些如生產(chǎn)計劃計算或者成本核算等等,其最為根本的特征就是需要不同表的數(shù)據(jù)經(jīng)有效處理后才可以獲取到數(shù)據(jù)結(jié)果,此種情況編程者通常會進(jìn)行以下處理,其一運(yùn)用游標(biāo)對數(shù)據(jù)進(jìn)行檢索,有關(guān)的數(shù)據(jù)可使用單行循環(huán)檢索方式進(jìn)行處理,將一條結(jié)果計算完成之后,然后再到數(shù)據(jù)庫中進(jìn)行檢索。該處理方式的優(yōu)缺點(diǎn)為可直接運(yùn)用SQL語句進(jìn)行循環(huán)處理,不需要把空間中存儲的臨時數(shù)據(jù)開出來。但是此種方式游標(biāo)自身是較為完整的事物,所以游標(biāo)里若有對數(shù)據(jù)庫的修改,不可以馬上進(jìn)行提交,這會致使數(shù)據(jù)庫中某些數(shù)據(jù)出現(xiàn)鎖定狀態(tài),并且因為內(nèi)部對其他數(shù)據(jù)庫信息進(jìn)行使用時檢索方式是一行一行的,所以從全局來看,效率不高,極易出現(xiàn)死鎖的情況。其二把相關(guān)的計算,都運(yùn)用存儲過程來計算,前邊只將調(diào)用存儲的過程及參數(shù)發(fā)出即可。該處理方式的優(yōu)缺點(diǎn)為在C/S結(jié)構(gòu)的系統(tǒng)開發(fā)中,某些業(yè)務(wù)邏輯推到數(shù)據(jù)庫端來實現(xiàn)是有效的,但因為存儲過程相對來說較為繁雜,難以展開程序調(diào)試工作或者及時發(fā)現(xiàn)相關(guān)問題,所以對于較為繁雜的循環(huán)處理過程,通常不會運(yùn)用此種處理方式。其三把所有使用的數(shù)據(jù)一次性檢索到前邊,然后只將調(diào)用存儲的過程及參數(shù)發(fā)出即可。該處理方式的優(yōu)缺點(diǎn)為雖然一次性檢索時間較長,但沒有多余的工作存在,從整體上來看,并不存在浪費(fèi)時間的現(xiàn)象。而且如果數(shù)據(jù)檢索到前端之后,不管做什么樣的計算處理,都與數(shù)據(jù)庫沒有關(guān)系,鎖現(xiàn)象是不會發(fā)生的。但是此種方式會消耗網(wǎng)絡(luò)傳輸?shù)臅r間,也比較占用內(nèi)存。其四對數(shù)據(jù)進(jìn)行批處理,按照具體的情況對批大小進(jìn)行制定。其三及其四的處理方式很相似,最為主要的不同之處就是將數(shù)據(jù)集分為多個小的數(shù)據(jù)集,來降低內(nèi)存的占用情況。其五結(jié)構(gòu)為三層的時候,通常將業(yè)務(wù)處理放在中間位置,不同結(jié)構(gòu)處理方式也存在差異,其中三層結(jié)構(gòu)主要是在中間層處理某些數(shù)據(jù)庫的處理過程以及前邊處理的業(yè)務(wù)邏輯。
5.不應(yīng)到數(shù)據(jù)庫中提取界面上可獲得的信息
在編程的過程中,通常會發(fā)現(xiàn)有一些信息盡管出現(xiàn)在了前邊的界面上,但是想要對其信息進(jìn)行獲取卻存在一定的難度,有時候因為控件封裝的因素,控件可將數(shù)據(jù)庫中存在的數(shù)據(jù)很容易的獲取到,但可能從界面上對數(shù)據(jù)提取卻很復(fù)雜,這個過程中,編程人員一般會從數(shù)據(jù)庫中提取相關(guān)數(shù)據(jù)來解決此問題。但其實這種處理方式并不合理,一般前邊所獲得的信息,最好不好到數(shù)據(jù)庫中進(jìn)行檢索。以下是某人事信息錄入界面:
此界面的主要表現(xiàn)形式為兩種,上邊即dbgrid控件,其可進(jìn)行一系列的數(shù)據(jù)記錄,下邊即dbfreeform控件,其可進(jìn)行一個數(shù)據(jù)信息的詳細(xì)記錄,兩種方式相結(jié)合對于用戶信息的錄入非常方便,并且也可以看到更多的記錄內(nèi)容,所以此種方式是較為合理的。而從實踐情況來看,通常像以上兩種記錄方式,其與數(shù)據(jù)庫操作有非常密切的關(guān)系,一般都具備檢索數(shù)據(jù)、修改數(shù)據(jù)以及保存的功能。其中界面的表現(xiàn)就好比數(shù)據(jù)視圖,其與物理數(shù)據(jù)庫之間有一個邏輯數(shù)據(jù)區(qū)存在,而邏輯數(shù)據(jù)區(qū)的存在,就是用來存儲、檢索或者修改這些數(shù)據(jù)信息的。如果從編程的方便性來講,像以上兩種記錄方式,均對應(yīng)著不同的邏輯數(shù)據(jù),用戶可在上邊完成修改操作,并在完成修改后保存數(shù)據(jù)界面,然后進(jìn)行刷新就可表現(xiàn)出新的數(shù)據(jù),編程的工作量并不大,但卻有非常多傳輸數(shù)據(jù)的工作。對于此種界面通常最為合適的處理方式為dbgrid控件及dbfreeform控件運(yùn)用一個中間邏輯數(shù)據(jù)區(qū),這樣做的主要目的雖不與數(shù)據(jù)庫發(fā)生操作,但可確保兩個控件內(nèi)數(shù)據(jù)的一致性,并且也可運(yùn)用一個中間邏輯數(shù)據(jù),但不管對哪個數(shù)據(jù)修改,都是把修改結(jié)果賦予另一個控件之上,其意思即指所修改的信息,還是從前邊獲取的,并不是從數(shù)據(jù)庫中得到的。
結(jié)束語
總而言之,本文此次研究主要從編程角度出發(fā),探討了數(shù)據(jù)庫應(yīng)用軟件提高效率的幾點(diǎn)堅持原則。但由于數(shù)據(jù)庫運(yùn)用軟件的運(yùn)行效率,與數(shù)據(jù)庫的配置、數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計都有密切的聯(lián)系,所以想要設(shè)計全局效率極高的系統(tǒng)軟件,就應(yīng)高度重視數(shù)據(jù)庫應(yīng)用軟件每一個細(xì)節(jié)之處的設(shè)計與有效實現(xiàn)。
參考文獻(xiàn)
[1]史俊杰.數(shù)據(jù)庫設(shè)計中軟件工程技術(shù)的作用探討[J].造紙裝備及材料,2021,50(2):97-98,103.DOI:10.3969/j.issn.1672-3066.2021.02.040.
[2]孔繁勝.淺議軟件工程技術(shù)在數(shù)據(jù)庫設(shè)計中的應(yīng)用[J].數(shù)碼設(shè)計(上),2021,10(6):345.
[3] Lin Zhifeng. Analysis of database programming technology based on computer software engineering [J]. Digital Design (Part 2), 2021, 10(6): 41.
[4]田斌.計算機(jī)軟件數(shù)據(jù)庫設(shè)計的重要性以及原則分析[J].數(shù)碼設(shè)計(下),2021,10(4):9.
[5]于亮.數(shù)據(jù)庫測試技術(shù)在計算機(jī)軟件開發(fā)中的應(yīng)用[J].黑河學(xué)院學(xué)報,2021,12(9):183-185.DOI:10.3969/j.issn.1674-9499.2021.09.061.