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

提高SOL Server數據庫訪問速度的方法

2007-04-29 00:00:00田瑜輝
計算機時代 2007年9期

摘要:當SQL Server數據庫處理10萬條以上的數據記錄并且并發用戶超過100人時,其執行速度迅速下降。文章以學校成績錄入與管理系統為例介紹了幾種提高數據庫訪問速度的方法。

關鍵詞:SQL Server;訪問速度;數據庫

引言

SQL Server數據庫作為微軟在Windows平臺上開發的數據庫,已經過多次的功能改進,出現了SQL Server2000版本,雖然SQL Server2000還無法和Oracle、Informix等大型數據庫相比,但它在市場上的占有率足以說明了其先進性。很多程序員只注重程序算法的編寫,并不對SQL Server2000數據庫處理進行深入的考慮,從而導致數據庫數據或并發用戶增多時,系統執行速度越來越慢,甚至導致死機。本文根據我校在開發成績錄入與管理系統過程中出現的問題,對如何提高SQL Server數據庫訪問速度進行研究。

我校成績錄入與管理系統中主要包含的數據表為:學生表,成績表,課程表,專業表,學院表。各個學期成績表等如圖1所示(部分表以及表結構已經省略)。

1 合理使用視圖和分區視圖

視圖可以看成是虛擬表或存儲查詢,可以通過select對視圖中的數據進行查詢,但是無法插入、更新、刪除視圖中的數據信息。很多程序員在編程過程中只使用數據表,而其它的一些操作全部利用程序來完成。過去我校的成績錄入與管理系統中,所有的數據操作都利用表來完成,大部分數據交換和數據調用都通過函數來實現,因此隨著數據量的增大整個系統的執行速度越來越慢。系統經過改進,把需要利用多個select查詢的數據創建成視圖,系統速度有了很大的提高。

以圖2所示的數據表為例,在一個頁面中想要完成學生的成績查詢,并且要知道學生的姓名和課程名稱,如果通過程序實現,必須利用三次select語句才能把圖2所示三個表中所需要的字段顯示出來。這種方法大大影響了數據庫訪問的速度。若利用視圖,則只需進行一次select查詢就可以得到想要的數據,其效率遠遠大于程序實現的效率。

視圖是不保存任何記錄的,它存儲的是查詢語句,所顯示的記錄來自于數據表(可以為多個數據表)。可以依據各種查詢需要創建不同的數據表,不會因此增加數據庫的數據量。

再舉一個例子:我校每個學期都會有20萬條的成績數據,迄今為止成績錄入與管理系統已經運行了5個學期,各學期總成績就有100萬條數據,對于如此大量的數據,如何來管理,就每個程序員來說都是非常頭疼的問題。

對此可以引入分區視圖來解決。分區視圖是指將一個或多個服務器上的數據表數據合并,通過定義check約束,將搜索范圍限制到這些表上。分區視圖的關鍵是check約束,如果不定義check約束,查詢分析器必須搜索所有的表。具體到我校的成績錄入與管理系統的處理上,我們為每個學期單獨創建一個表,表名為成績[學期][學年]例如:表名為成績20061。可以利用SQL中設計視圖功能創建各個學期表。

在成績表中需要注意,一定要建立學年、學期列的check約束。接著定義一個視圖把以前所有學期的數據使用union all連接起來作為單個的結果集。別出此語句中的搜索條件,將其搜索范圍限制在這個表上。這種方法的使用可以大大提高SQL Server數據庫的訪問速度。

2 使用存儲過程提高數據處理速度

存儲過程最大的優點是將存儲處理翻譯成可執行碼保存在系統表內,當作數據庫的對象之一。由于存儲過程已事先被翻譯成可執行碼,可以直接執行,所以其執行速度會很快。對一些功能固定的需求,把它寫成存儲過程可提高SQL Server數據處理的速度。以我校成績錄入與管理系統為例:我校每學期成績表中數據都在20萬條以上,而且把各個學期的數據連接到一起形成了總成績視圖,數據量超過100萬條,要操作這樣龐大的數據庫,如果使用方法不當,就會嚴重地降低執行速度。我們考慮將經常使用的功能全部寫成存儲過程來提高數據庫訪問的速度,如:學期數據導入、成績數據備份、總成績查詢等。結果表明執行速度有很大的提高。

對于學期成績數據導入功能說明如下:在每學期成績庫中有20多萬條數據,每學期成績錄入結束以后都要進行學期成績數據導入。以前使用insert語句進行程序導入,執行速度很慢,甚至有時慢得無法執行,后來通過一個簡單的存儲過程很快地解決了問題,20萬條數據導入,執行時間在10秒左右。

我校教務教學管理中使用學分制,通過學分績的高低來反映一個學生學習成績的好壞。計算學分績的公式是((學生成績—50)/10)*課程的學分。在學分和學分績插入操作種需要進行判斷:考試成績不及格,則學分和學分績都為0;考試成績在60分以上,則計算出相應的學分和學分績。最后通過“delete from成績表”清空成績表中的成績數據,以便下學期正常進行成績錄入工作。合理地建立存儲過程可以有效地提高數據庫訪問速度;還可以把一些程序算法封裝到存儲過程中來提高軟件產品的可維護性,即使是條件發生改變時,也不需要修改客戶端的應用程序,只要對數據庫端編寫的存儲過程進行修改即可。

3 索引設計與優化

目前很多軟件為方便使用者學習也在幫助文檔中添加索引功能,微軟的MSDN是最典型的例子之一。在MSDN中專門有一項索引服務,很多程序員可能熟悉而且經常使用這個功能。通過索引查詢信息不但方便而且能大大縮短查找信息的時間。在SQL Server數據庫設計中也采用了這種概念,為了加快數據庫訪問的速度,可以對某些常用的查詢條件創建索引。

在我校成績錄入與管理系統開發的過程中,解決數據庫訪問速度是一個關鍵問題。以往,期末考試結束以后,很多教師集中進行學生成績錄入,并行用戶往往都在100人以上,而且對數據庫反復進行插入、更新、刪除數據等操作,在這種情況下,程序執行速度非常慢,錄入一條成績數據往往需要1分多鐘,而且有時還出現一些莫名其妙的錯誤,這使開發人員十分困惑。經過對數據庫各個表的仔細核查,并對每個表相應的字段建立索引后,問題完全得到解決,經過測試在線用戶100人時,錄入一條成績數據大約2~3秒,系統處理速度得到很大提高。下面是建立索引的一個具體例子:在學生表中經常用到的字段只有一個:學號,我們可以對學號建立索引,建立方法如下create index sid on學生表(學號)。

提高數據庫訪問速度,不但要使用索引,而且還要優化索引;但是不能盲目使用索引,更不能對所有的字段都加上索引,這樣不但不會提高速度,反而會因為過多的索引導致表掃描增多,增大查詢造成的I/O開銷。常用的索引主要分為兩種:聚集索引、非聚集索引。在建立索引過程中要根據具體情況來選擇不同的索引。聚集索引是表中存儲的數據按照索引的順序存儲,檢索效率比普通索引要高,但對數據新增、修改、刪除的影響比較大。這就是說聚集索引適合固定表,如學生表、專業表、課程表、學院表,而不適合要不斷新增、修改、刪除成績信息的成績表。非聚集索引和聚集索引相反,不影響表中的數據存儲順序,檢索效率比聚集索引低,但是對新增、修改、刪除的影響很小,在成績表中就必須建立非聚集索引了。

4 結束語

在SQL Server數據庫中合理有效地利用以上提到方法固然能夠提高訪問速度,但是在具體的程序、數據庫開發過程中還要不斷的改進這些方法,并且還要注意在實際項目中的靈活應用。提高SQL Server數據庫訪問速度的方法還有很多。在具體數據庫開發過程中需要程序員們不斷地優化數據庫的操作,提升其性能,使得SQL Server數據庫潛能得到全部發揮。希望本文能夠起到拋磚引玉的作用,并讓更多的程序員來關心數據庫操作的效率問題。

主站蜘蛛池模板: 国产最爽的乱婬视频国语对白| 99久久99视频| 国产精品亚洲天堂| 国产女人在线观看| 亚州AV秘 一区二区三区| 色窝窝免费一区二区三区 | 综合久久五月天| 超碰精品无码一区二区| 国产福利一区二区在线观看| 天天综合色天天综合网| 亚洲精品国产精品乱码不卞| 伊人五月丁香综合AⅤ| 欧美高清视频一区二区三区| 国产91熟女高潮一区二区| 91精品啪在线观看国产60岁| 国产内射在线观看| 91在线激情在线观看| 日本欧美视频在线观看| 国产精品久久久久久久久| 亚洲欧美精品日韩欧美| 精品国产香蕉在线播出| 97精品伊人久久大香线蕉| 青青草原国产| 色婷婷视频在线| 国产成人高清精品免费5388| 中文字幕亚洲综久久2021| 自偷自拍三级全三级视频| 国产精品流白浆在线观看| 成人av专区精品无码国产 | 国产精品手机在线播放| 香蕉eeww99国产精选播放| 国产超碰一区二区三区| 亚洲精品视频免费| 国产性精品| 久久大香伊蕉在人线观看热2| 网友自拍视频精品区| 黄色国产在线| 久久久久国色AV免费观看性色| 久久99国产综合精品女同| 91美女在线| 手机成人午夜在线视频| 亚洲国产清纯| 国产女人18水真多毛片18精品| 精品国产中文一级毛片在线看 | 亚洲国产成人精品无码区性色| 亚洲人成网站观看在线观看| 欧美在线综合视频| 好吊色国产欧美日韩免费观看| 久久99国产综合精品1| 亚洲欧美另类中文字幕| 国产精品一区二区无码免费看片| 国产成人综合日韩精品无码首页| 国产理论最新国产精品视频| 又粗又大又爽又紧免费视频| 久久狠狠色噜噜狠狠狠狠97视色| 欧美在线国产| 粉嫩国产白浆在线观看| 国产色网站| 婷婷亚洲最大| 国产青青草视频| 视频一本大道香蕉久在线播放 | 免费看a毛片| 成人小视频网| 国产无码网站在线观看| 美女扒开下面流白浆在线试听| 久久无码av三级| 97青青青国产在线播放| 国产极品美女在线| 在线国产毛片手机小视频| 自拍亚洲欧美精品| 国产99视频在线| 国产午夜看片| 国产精品林美惠子在线播放| 国产成人8x视频一区二区| 国内精品九九久久久精品| 日本高清有码人妻| 美美女高清毛片视频免费观看| 久久夜色撩人精品国产| www.精品视频| 美女被狂躁www在线观看| 小蝌蚪亚洲精品国产| 国产a v无码专区亚洲av|