成人免费看黄网站无遮挡,caowo999,se94se欧美综合色,a级精品九九九大片免费看,欧美首页,波多野结衣一二三级,日韩亚洲欧美综合

學(xué)生成績(jì)管理系統數據查詢(xún)優(yōu)化方法研究論文

時(shí)間:2021-06-23 09:41:16 論文 我要投稿

學(xué)生成績(jì)管理系統數據查詢(xún)優(yōu)化方法研究論文

  0引言

學(xué)生成績(jì)管理系統數據查詢(xún)優(yōu)化方法研究論文

  互聯(lián)網(wǎng)時(shí)代,信息技術(shù)給人們的工作和生活帶來(lái)了極大的便利。一個(gè)功能完整的管理信息系統通常由兩部分組成,即前臺應用程序和后臺數據庫。前臺應用程序通過(guò)互聯(lián)網(wǎng)與后臺數據庫進(jìn)行數據交互,包括數據的增加、刪除、修改、查詢(xún),這就是數據庫的4個(gè)基本操作,簡(jiǎn)稱(chēng)CRUD操作。在數據庫的4個(gè)基本操作中,查詢(xún)是使用頻率最高的操作,因此查詢(xún)效率的高低直接關(guān)系到應用程序性能的好壞。大數據時(shí)代數據量增長(cháng)很快,如果不注重數據查詢(xún)效率的優(yōu)化,隨著(zhù)數據量的逐漸增加,數據查詢(xún)效率將逐漸降低,最終將嚴重影響管理信息系統的用戶(hù)體驗。因此,必須將數據查詢(xún)優(yōu)化作為管理信息系統開(kāi)發(fā)與維護的重要內容,貫穿系統生命周期始終。

  1研究對象與方法

  學(xué)生成績(jì)管理系統是一個(gè)典型的基于數據庫的管理信息系統,在教育管理中應用非常廣泛。根據數據庫設計原則,按照第三范式的要求設計數據表結構。學(xué)生成績(jì)管理系統數據庫的表結構由成績(jì)表、學(xué)生表和課程表組成。成績(jì)表中包含學(xué)期、學(xué)號、課程號、成績(jì)等字段,學(xué)生表中包含學(xué)號、姓名、學(xué)籍表等字段,課程表中包含課程號、課程名稱(chēng)、學(xué)時(shí)、學(xué)分等字段。

  將學(xué)生成績(jì)管理系統數據庫部署在Windows Server 2008操作系統和 SQL Server 2008數據庫管理系統上。數據查詢(xún)一般通過(guò)SQL查詢(xún)語(yǔ)句來(lái)實(shí)現各種查詢(xún)邏輯。在外部環(huán)境保持穩定的狀態(tài)下,數據查詢(xún)效率越高,SQL語(yǔ)句的執行時(shí)間越短。因此,可以通過(guò)計算SQL語(yǔ)句的執行時(shí)間來(lái)進(jìn)行數據查詢(xún)效率比較分析。

  2數據查詢(xún)效率影響因素

  由于數據查詢(xún)是一個(gè)前臺應用程序與后臺數據庫的交互過(guò)程,涉及很多環(huán)節,因此影響數據查詢(xún)效率的因素有很多。歸納起來(lái),影響數據查詢(xún)效率的因素主要來(lái)自物理層、數據庫層、應用層[1] 3個(gè)層面。

  在物理層,影響數據查詢(xún)效率的`主要因素包括服務(wù)器CPU性能、內存、硬盤(pán)、網(wǎng)絡(luò )、操作系統等。在數據庫層,影響數據查詢(xún)效率的主要因素包括索引、視圖、數據存儲、數據冗余等。在應用層,影響數據查詢(xún)效率的主要因素是SQL語(yǔ)句的寫(xiě)法和應用程序設計。

  3數據查詢(xún)優(yōu)化方法

  3.1物理層優(yōu)化方法

  數據庫部署在服務(wù)器上,服務(wù)器性能的好壞直接影響查詢(xún)效率。針對物理層影響數據查詢(xún)效率的主要因素,可以采取以下優(yōu)化方法:

 。1)提高CPU性能。CPU是計算機負責執行指令和處理數據的核心部件。服務(wù)器性能的高低很大程度上由CPU的性能決定。數據庫的查詢(xún)操作特別依賴(lài)CPU的并行處理能力。因此,應該為數據庫服務(wù)器配置高性能的CPU。

 。2)增加內存。數據查詢(xún)分為物理讀和邏輯讀,物理讀是從硬盤(pán)讀取數據到內存緩沖區,邏輯讀是直接從內存緩沖區中讀取數據。內存的讀寫(xiě)效率遠遠高于磁盤(pán)的讀寫(xiě)效率,而且物理讀還會(huì )增加磁盤(pán)I/O操作。因此,為了保證數據查詢(xún)操作都能夠在內存中完成,應該盡量為數據庫服務(wù)器配置足夠多的物理內存,同時(shí)要配置相應的虛擬內存。

 。3)配置多塊硬盤(pán)。數據查詢(xún)操作需要大量的I/O操作,將I/O操作盡可能平均分配在多塊硬盤(pán)上才能有效提升硬盤(pán)的并行讀寫(xiě)性能。因此,應該為數據庫服務(wù)器配置多塊硬盤(pán),避免使用單塊超大容量硬盤(pán)。

 。4)提高網(wǎng)絡(luò )帶寬和網(wǎng)絡(luò )穩定性。應用程序與數據庫之間通過(guò)互聯(lián)網(wǎng)進(jìn)行數據交互,因此應該提高數據庫服務(wù)器的網(wǎng)絡(luò )帶寬和網(wǎng)絡(luò )穩定性。

 。5)提高操作系統性能。數據庫管理系統安裝在操作系統上,應該加強操作系統的管理與維護,提高操作系統性能。

  3.2數據庫層優(yōu)化方法

  數據庫管理系統負責SQL查詢(xún)指令的執行,因此數據庫層的優(yōu)化是數據查詢(xún)優(yōu)化的核心,其對數據查詢(xún)效率影響最為顯著(zhù),可以采取以下優(yōu)化方法:

 。1)索引優(yōu)化。索引是對數據庫表中一個(gè)或多個(gè)列的值預先進(jìn)行結構排序。索引可以避免全表掃描,因而可顯著(zhù)加快數據庫的查詢(xún)速度[2]。索引分為聚集索引和非聚集索引。與非聚集索引相比,聚集索引通常能夠提供更快的數據訪(fǎng)問(wèn)速度。一般應考慮將頻繁查詢(xún)、連接、排序或分組的列設為索引列,其中最頻繁操作的列設為聚集索引列,避免在數據量較小的表上建立索引,同時(shí)避免在頻繁進(jìn)行插入、刪除和修改操作的列上建立索引[3]。如成績(jì)表一般按學(xué)號查詢(xún),因此將學(xué)號列設置為聚集索引列。同時(shí)根據需要將學(xué)期、課程號、成績(jì)等列設置為非聚集索引列。

 。2)視圖優(yōu)化。視圖是由一個(gè)或者多個(gè)表組成的虛擬表。通過(guò)連接查詢(xún)(JOIN)和聯(lián)合查詢(xún)(UNION)建立視圖,可以實(shí)現數據庫中數據的合并與分割,極大方便了數據查詢(xún)。如成績(jì)管理系統中成績(jì)表分別與學(xué)生表和課程表進(jìn)行連接查詢(xún),建立一個(gè)視圖,將學(xué)號、姓名、課程號、課程名稱(chēng)、學(xué)時(shí)、學(xué)分、成績(jì)等信息放入一張虛擬表中,應用程序查詢(xún)時(shí)只需要查詢(xún)該視圖即可獲得所需數據。視圖查詢(xún)同時(shí)涉及多個(gè)物理表操作,當數據量較大時(shí),容易產(chǎn)生查詢(xún)效率低下的問(wèn)題。為了提高查詢(xún)效率,視圖的定義深度一般不應超過(guò)三層。若三層視圖不夠用,則應在視圖上定義臨時(shí)表,在臨時(shí)表上再定義視圖。這樣反復交迭定義,視圖的深度就可以不受限制。既保留了視圖的便利性,又兼顧了查詢(xún)效率問(wèn)題。

 。3)數據存儲優(yōu)化。數據庫通常包括數據文件和日志文件。數據文件和日志文件默認存儲在相同的位置。由于數據文件和日志文件的操作會(huì )產(chǎn)生大量的I/O,因此應將日志文件與數據文件分別存儲在不同的硬盤(pán)上以分散I/O。通常情況下,數據庫默認只有一個(gè)主數據文件,不生成次數據文件。為了提高查詢(xún)效率,必要時(shí)可以通過(guò)定義文件組把數據庫中的一些表分開(kāi)存儲在不同的數據文件里,即增加次數據文件,同時(shí)把不同的數據文件分散存儲在不同的硬盤(pán)上[4]。此外,數據文件長(cháng)期自動(dòng)增長(cháng)可能產(chǎn)生碎片,導致物理空間與數據的邏輯空間不再連續。因此,有必要定期整理數據庫碎片,以提高數據庫查詢(xún)效率。

 。4)適當增加數據冗余。按照數據庫的設計原則,數據表應該避免數據冗余。但是,為了提高數據的查詢(xún)效率,有時(shí)需要降低范式標準,適當增加數據冗余,達到以空間換時(shí)間的目的。數據冗余包括字段冗余和表冗余。字段冗余是通過(guò)增加冗余字段,減少數據計算和連接查詢(xún)。如學(xué)生表中的性別和出生日期,雖然可以從身份證號中獲取,但是為了提高查詢(xún)效率,應增加性別和出生日期字段。表冗余是通過(guò)增加冗余表提高查詢(xún)效率。以成績(jì)表為例,運行多年的成績(jì)管理系統中保存了歷屆學(xué)生的成績(jì)信息,包括已經(jīng)畢業(yè)的學(xué)生成績(jì)信息,多年累積下來(lái),數據量不斷增加,導致查詢(xún)效率降低。此時(shí),可以考慮建立一個(gè)數據冗余表,其表結構與成績(jì)表的視圖一致,但是只保存在校學(xué)生的成績(jì)信息,數據量會(huì )大大減少。對在校生的成績(jì)查詢(xún)只需要查詢(xún)冗余表,查詢(xún)效率大大提升。成績(jì)數據冗余表要能自動(dòng)更新,以便與成績(jì)表數據保持同步和一致?衫肧QL Server 2008的代理服務(wù)功能,建立一個(gè)每天凌晨定時(shí)自動(dòng)執行的作業(yè),作業(yè)分為兩步:

  step1:清空老數據,相關(guān)SQL語(yǔ)句為:

  Truncate table cj_query

  step2:插入新數據,更新冗余表,相關(guān)SQL語(yǔ)句為:

  INSERT INTO cj_query (xq,xh,xm,kch,kcmc,xs,xf,cj)

  SELECT xq,xh,xm,kch,kcmc,xs,xf,cj

  FROM cj_v /* cj_v為成績(jì)表、學(xué)生表、課程表作連接查詢(xún)建立的視圖*/

  WHERE xjm = '01' /*在校學(xué)生的學(xué)籍碼為01*/

  3.3應用層優(yōu)化方法

  應用層涉及SQL語(yǔ)句的編寫(xiě)和應用程序的設計,其是否合理很大程度上會(huì )對數據查詢(xún)效率產(chǎn)生影響。針對應用層影響數據查詢(xún)效率的主要因素,可以采取以下優(yōu)化方法:

 。1)SQL語(yǔ)句寫(xiě)法優(yōu)化。SQL語(yǔ)句優(yōu)化要注意的地方很多,總的原則是限制返回結果集,盡量避免全表掃描。返回結果集越大,邏輯讀數就越大,而且如果超出內存緩沖區的容量,還需要增加物理讀數,從而增加磁盤(pán)I/O操作。因此應該限制返回結果集的大小,包括行數和字段列數。全表掃描是指搜索表中的每一條記錄,直到所有符合給定條件的記錄返回為止,效率非常低下,因此應該盡量避免全表掃描。根據優(yōu)化總原則, SQL語(yǔ)句優(yōu)化方法總結如下:①避免使用 select * from table,應該用具體的字段代替“*”,不要返回任何用不到的字段;②盡量避免在where子句中使用!=、<>、not、in、or等運算符,因為這些操作可能會(huì )引起全表掃描;③盡量避免在 where 子句中對字段進(jìn)行函數運算和表達式運算,這將導致數據庫放棄使用索引而進(jìn)行全表掃描;④盡量避免使用子查詢(xún),如不能避免時(shí),應盡量減少子查詢(xún)的嵌套層次,并在子查詢(xún)中過(guò)濾掉盡可能多的行;⑤盡量避免使用外連接,因為外連接必須對左表或右表查詢(xún)所有行,應盡量使用內連接;⑥合理使用臨時(shí)表和表變量,當需要重復使用數據量較大的表中某個(gè)數據集時(shí),應當考慮使用臨時(shí)表或表變量,這樣可以大大提高查詢(xún)效率[5]。表變量存儲在內存中,臨時(shí)表存儲在系統數據庫tempdb中。對于較小的數據集考慮使用表變量,對于大數據集,由于內存無(wú)法容納,使用表變量效率反而不高,應該使用臨時(shí)表。同時(shí),應避免頻繁創(chuàng )建和刪除臨時(shí)表,以減少系統表資源的消耗。

 。2)應用程序設計優(yōu)化。應用程序設計有時(shí)也會(huì )影響數據查詢(xún)效率。在可能的情況下,應用程序應盡量采用分頁(yè)設計,這樣可以分批多次獲取數據集,提高單次查詢(xún)響應速度。同時(shí),應用程序設計時(shí)還需考慮并發(fā)性,防止出現數據庫鎖死和查詢(xún)阻塞現象。此外,對于Web應用程序,還應考慮使用數據緩存和局部刷新技術(shù),減少數據查詢(xún)次數和查詢(xún)數據量。

  4結語(yǔ)

  大數據時(shí)代,數據庫中的數據量持續增加。為了保證信息管理系統始終具有快速的響應速度和良好的用戶(hù)體驗,必須深入研究數據查詢(xún)優(yōu)化技術(shù)。本文以學(xué)生成績(jì)管理系統為例,從物理層、數據庫層和應用層3個(gè)方面分析了影響數據查詢(xún)效率的主要因素,給出了相應的數據查詢(xún)優(yōu)化方法。實(shí)際應用中,應從多個(gè)方面綜合采取合適的優(yōu)化策略,才能有效提高數據查詢(xún)效率。

  參考文獻參考文獻:

  [1]劉輝蘭, 陳衛東.數據查詢(xún)優(yōu)化技術(shù)的研究和探討[J].中國數字醫學(xué), 2015 (7):7274.

  [2]林勤花.關(guān)系數據庫查詢(xún)優(yōu)化技術(shù)研究[J].電腦編程技巧與維護, 2014, 10(9):3031.

  [3]樊新華.關(guān)系數據庫的查詢(xún)優(yōu)化技術(shù)[J].計算機與數字工程, 2009, 37(12):188192.

  [4]馮衛兵.關(guān)系數據庫的查詢(xún)優(yōu)化[J].現代計算機, 2010 (1):3033.

  [5]程學(xué)先,黃愛(ài)武.關(guān)系數據庫的查詢(xún)優(yōu)化技術(shù)[J].軟件導刊, 2007 (1):7273.

【學(xué)生成績(jì)管理系統數據查詢(xún)優(yōu)化方法研究論文】相關(guān)文章:

略談優(yōu)化管理提高體育生成績(jì)研究論文10-18

數據采集系統設計研究論文04-13

SSH的學(xué)生成績(jì)信息管理系統的具體研究論文10-24

優(yōu)化設計方法的數值研究論文04-16

管理系統畢業(yè)研究論文04-02

灌溉管網(wǎng)優(yōu)化設計方法研究論文04-16

集群存儲系統數據安全研究論文04-14

國際KBS數據廣播系統研究的論文04-13

數據挖掘教學(xué)方法研究論文07-04