蘇昭虎
技術(shù)考試系統(tǒng)的需求分析
對技?,F(xiàn)行課程考試業(yè)務(wù)進(jìn)行詳細(xì)了解,通過認(rèn)真調(diào)查后得知,原有的人工操作在考試工作中占的比重較大,考試流程是這樣的:教導(dǎo)處下發(fā)考試通知→老師出卷→安排考場→組織考前宣傳以及公布考場地點(diǎn)→印刷試卷→正式考試→閱卷→出成績→張榜公布成績等。根據(jù)調(diào)查結(jié)果,得到考試工作的組織機(jī)構(gòu)設(shè)置如圖所示。
通過了解詳細(xì)情況之后并結(jié)合現(xiàn)行考試模式,而確定本系統(tǒng)的業(yè)務(wù)流程如圖1-2所示。
技??荚囅到y(tǒng)的功能結(jié)構(gòu)設(shè)計
系統(tǒng)功能結(jié)構(gòu)。根據(jù)需求分析可知,技校學(xué)生考試系統(tǒng)是由三大模塊組成:后臺管理模塊、考試功能模塊以及領(lǐng)導(dǎo)審核功能模塊,如圖2-1示。
數(shù)據(jù)庫設(shè)計。在Oracle數(shù)據(jù)庫服務(wù)器上建立名為exam的數(shù)據(jù)庫。該考試系統(tǒng)包括的數(shù)據(jù)表有:考生信息表(XS),成績表(CJ),學(xué)生檔案表(DA),題庫表(TK),班級表(BJ)等表,因編幅有限而略去。
Oracle數(shù)據(jù)庫優(yōu)化技術(shù)在考試系統(tǒng)中的應(yīng)用
SQL語句的優(yōu)化是作為Oracle數(shù)據(jù)庫系統(tǒng)中最為重要的一個組成部分。隨著考試系統(tǒng)數(shù)據(jù)庫的日漸增大,系統(tǒng)最為突出的問題就是數(shù)據(jù)訪問的響應(yīng)速度。因此,這里對考試系統(tǒng)中的Oracle數(shù)據(jù)庫查詢技術(shù)進(jìn)行優(yōu)化是十分有必要的。
從上面的Oracle中的SQL語句我們能夠發(fā)現(xiàn)學(xué)生考試記錄查詢語句中對SQL語法使用存在錯誤,而最終使得某些字段索引出現(xiàn)失效的現(xiàn)象,即and to_char(c.dt,'yyyy-mm')=to_char(sysdate,'yyyy-mm')這一句,因?yàn)樗饕性诤瘮?shù)中,那么索引將會失去原有的作用,這樣的一種SQL語句錯誤的做法,使得在考試系統(tǒng)數(shù)據(jù)庫建立時就被忽略掉了,其實(shí)這樣的忽略會使訪問速率造成較大的影響,那么我們可以改成這樣:andc.dt=trunc(sysdat e.'yyyy-mm')and c.dt<=last_day(sysdate)。另一個語句a and b.id(題號)In(Select id From TK t With t.id=b.id Connect By t.id=Prior sj_b.id)中的in能夠用exists來取代替,這樣能夠在很大程度上提高考生信息記錄查詢的速率,優(yōu)化后完整的SQL語句是這樣的:
考生成績信息查詢優(yōu)化
select*from CJ a,DA b where a.id=b.sno order by sno,km
該語句主要是實(shí)現(xiàn)了考生各個科目成績的查詢和排序,由于技??忌藬?shù)較多,且每個考生又對應(yīng)著多個考試科目。雖然SQL語句很簡單,但是查詢速度卻是十分的慢。主要原因是由于這個語句中,有兩個關(guān)聯(lián)表中的兩個字段都沒有建立索引,從而使得查詢速度十分的慢,如果對這些字段全面建立起索引,那么就能夠全面有效地提高這個語句的查詢速率。具體做法是:成績表(cj)的科目字段km索引名為km_idx,檔案表(DA)的學(xué)號sno的索引名為sno_idx。所以需要在Oracle數(shù)據(jù)庫中創(chuàng)建兩條索引來進(jìn)行優(yōu)化,下面通過兩條語句來建立數(shù)據(jù)表的相應(yīng)索引:CREATE INDEX km_idx ON Exam.CJ(km)
CREATE INDEX sno_idx ON Exam.DA(sno)
優(yōu)化效果。通過對考生考試信息查詢和考生成績信息查詢頁面SQL語句的優(yōu)化,以此來提高查詢速度,下表3-1是優(yōu)化前和優(yōu)化后所用的時間:
表3-1 SQL優(yōu)化前后的性能測試結(jié)果從圖3-1中我們能夠看出,學(xué)生考試系統(tǒng)的考試信息查詢SQL語句優(yōu)化理論對以上SQL語句進(jìn)行了優(yōu)化調(diào)整,SQL語句的查詢速度得到了很大的提升。考生考試信息查詢的速度平均提高了68.47%,考生成績信息查詢的速度平均提高了67.03%,從圖中我們可以看出優(yōu)化以后的查詢速率確實(shí)有了明顯的改善,且優(yōu)化效果很好。