卜慧平
摘要:隨著現(xiàn)代科學技術的不斷發(fā)展,計算機以及網絡技術也越來越發(fā)達。但是隨著而來的是人們對計算機的數(shù)據(jù)處理能力以及運算速度有了更高的要求,為此美國的微軟集團便研發(fā)出了SQL Server數(shù)據(jù)庫程序。這個程序研發(fā)出來了之后能夠有效的管理用戶的所有有效數(shù)據(jù),同時對微軟系統(tǒng)的一些優(yōu)勢還有著優(yōu)化的作用。本文對于SQL Server數(shù)據(jù)庫應用程序的性能的優(yōu)化方式進行了一些探討,首先先探討了對這一系統(tǒng)的整個優(yōu)化的過程,然后針對于優(yōu)化服務器進行選擇、優(yōu)化系統(tǒng)的設計、選擇效率較高的查詢語句以及優(yōu)化存儲過程等方法進行闡述,闡述了如何提高數(shù)據(jù)庫的工作效率,這樣就能為后期的相關工作提供參考。
關鍵詞:SQL Server數(shù)據(jù)庫;應用程序性能;優(yōu)化方式
SQL Server數(shù)據(jù)庫是由美國微軟公司所研發(fā)出來的 一種關系型的數(shù)據(jù)庫系統(tǒng),這種系統(tǒng)本身具有可擴展性、高效性等特點,能夠為用戶服務器所設計的相關數(shù)據(jù)庫提供高校的管理;并且能夠與WindowsNT系統(tǒng)相結合,為企業(yè)的信息安全提供有效的管理。
1.SQL系統(tǒng)查詢的處理過程
SQL在進行查詢處理的過程中,總共會經歷三個步驟,分別是查詢、索引的選擇以及鏈接的選擇。其中查詢不僅作為過程的第一個步驟,也是系統(tǒng)進行索引的篩選以及連接的標準,通過限制查找的方式來減少所需處理數(shù)據(jù)的量,減輕服務器的工作強度,同時也減少了索引和連接的用戶讀取數(shù)量,增加了查詢的工作效率。處理器在選擇索引時,首先是會查詢用戶所查詢的數(shù)據(jù)是否存在索引,然后再對單個以及多個索引進行分析,保證索引在往返時的有效性。處理過程的第三個步驟是連接,主要是當一個多表查詢或者自動連接時,采用連接的策略對其進行評價,然后對于選擇將選擇最低效率的處理方式,當連接選擇完了之后,用戶就可以利用索引對一些基礎的數(shù)據(jù)進行查詢。
2.SQL Server數(shù)據(jù)庫應用程序性能的優(yōu)化方式
2.1選擇優(yōu)化服務器
SQL Server數(shù)據(jù)庫應用程序本身也是屬于計算機程序的一種,本身的一些性能也是與服務器的性能有著直接的關聯(lián),因此,在數(shù)據(jù)庫應用程序進行優(yōu)化的過程中,首先就是要選擇一個性能強大的服務器,服務器性能的好壞與否取決于它的物理配置,但是目前物理配置中最差的地方就是物理磁盤的性能。例如在對一個100MB的文件進行掃描時,性能較好的磁盤可能需要1分鐘左右的時間才能完成掃描,而如果是性能較差的磁盤則需要10分鐘左右的時間。除此之外,服務器能夠使用的內存量越大,那么服務器對于數(shù)據(jù)的存儲以及讀取速度也會更快。目前的計算機系統(tǒng)都是能夠支持多個CPU同時進行工作,這樣可以大幅度的減少磁盤讀取數(shù)據(jù)所花費的時間,但是性能越強大的服務器相對應的價格也會更貴,因此在實際中要根據(jù)實際情況來進行選擇。
2.2數(shù)據(jù)庫設計優(yōu)化
在對SQL Server數(shù)據(jù)庫進行設計優(yōu)化的過程中,一般會采用三種標準來對數(shù)據(jù)庫進行標準的設計,對數(shù)據(jù)庫采用標準化的目的在于減少數(shù)據(jù)庫中的一些冗余數(shù)據(jù)。當減少了這些冗余數(shù)據(jù)之后,就能夠保證系統(tǒng)在處理這些數(shù)據(jù)的過程中不會花費額外的時間來對掃描冗余數(shù)據(jù),大大的提高了數(shù)據(jù)庫的處理效率,在對SQL Server數(shù)據(jù)進行優(yōu)化設計的過程中,它的數(shù)據(jù)都是按照頁碼來進行存放的,每一個頁碼中都含有頁頭以及內部的數(shù)據(jù),其中的數(shù)據(jù)行的大小主要是由本頁碼當中的數(shù)據(jù)量來確定的,數(shù)據(jù)行的大小本身也對數(shù)據(jù)庫的性能產生了一定的影響。因此應該增加其中一些小數(shù)據(jù)行的數(shù)量,這樣就不僅能夠保證在同一個頁碼下增加數(shù)據(jù)的量。而且還能夠實現(xiàn)對數(shù)據(jù)的高效率的讀取,提高整個數(shù)據(jù)庫的工作效率。
2.3采用查詢效率更好的查詢語句
SQL數(shù)據(jù)庫在使用的過程中,主要的操作就是進行查詢,但是查詢語句的效率高低也會對數(shù)據(jù)庫的性能造成最直接的影響。目前該數(shù)據(jù)庫的查詢是基于Select語句的,這種語句在SQL數(shù)據(jù)庫的查詢語句中代價是很大的。所以,在對SQL數(shù)據(jù)庫系統(tǒng)進行優(yōu)化的過程中,應該使用查詢效率更好的查詢語句,滿足查詢的目的的高效性。
2.4優(yōu)化存儲過程
在對SQL數(shù)據(jù)庫進行優(yōu)化的過程中,也應該對其中的存儲過程進行相對應的優(yōu)化。隨著現(xiàn)代科技的C/S應用程序的使用范圍逐漸的擴大,各大軟件程序的優(yōu)化的主要目標就是考慮如何對現(xiàn)有的網絡資源進行更加充分的利用,避免造成資源浪費,提高資源使用率。而SQL的儲存過程則主要指的是一個被命名的存儲在服務商的SQL語句的集合。當SQL被第一次執(zhí)行之后,就會對這一語句的集合進行編譯,并使其存儲在內存里,這樣就能夠大大的縮短再次編譯以及讀取數(shù)據(jù)的時間,提高了整體的工作效率,因此可以看出優(yōu)化存儲過程多雨程序的優(yōu)化還是有很大的影響的。存儲過程優(yōu)化之后,用戶在對數(shù)據(jù)庫進行分析的過程中就能夠有效的避免進行數(shù)據(jù)的再次編譯甚至是多次編譯和分析,并且能夠保證數(shù)據(jù)會以二進制的形式傳送到服務器,并且由服務器加以解析,從而縮短了數(shù)據(jù)在網絡使用過程中所需要分析的時間。
2.5避免出現(xiàn)阻塞
出現(xiàn)阻塞的原因是因為程序中的第一個連接鎖與第二個連接鎖之間發(fā)生了沖突 ,從而造成了阻塞,這樣會導致服務器對數(shù)據(jù)的解析工作無法繼續(xù)進行并且完成,進而引發(fā)一系列的連鎖反應。出現(xiàn)這種現(xiàn)象的根本原因在于提交執(zhí)行的時間過長或者沒有及時的提交取消查詢命令所造成的一系列現(xiàn)象。因此,為了避免出現(xiàn)這一情況,在對程序進行設計的時候不能使用用戶所編寫的程序,因為這樣會大大的增加時間的花費。同時不能設計用戶在數(shù)據(jù)內容的程序,不能設計取消查詢到額程序以及不能設計立即完成操作的程序等。
3.事務和批量處理對應用程序性能的影響
適當?shù)氖褂肧QL的主要目的是為了減少服務器與客戶端之間的傳輸?shù)臄?shù)據(jù)的數(shù)量。這樣通常是可以減少完成任務和事務所需花費的時間。長時間的運行事務對單個的用戶可能是好的,但如果一旦擴展到了多個用戶則會變得很差。所以為了支持事務的一致性,數(shù)據(jù)庫必須從事務內獲取對共享資源的鎖后,要一直將這個鎖控制到事務提交為止。如果有其他的用戶需要訪問相同的資源,就需要等待,等別人用好了再用。隨著個別的事務變長,等待的隊伍以及其他的用戶也會越來越長,系統(tǒng)的吐吞量也會隨著的減少。長事務還可能會導致鎖變死的可能性,當兩個或者兩個以上的用戶同時等待相互控制的鎖時,可能就會導致鎖變死。因此,要縮短事務的時間長短,可以有以下幾個方法:(1)盡量在應用程序的要求內完成更改。應用程序會將大的事務分為一個一個的單個工作事務來執(zhí)行。(2)利用SQL Server語句來批量處理,減少服務器的往返次數(shù)。(3)對重復進行的操作使用參數(shù)數(shù)組。
4.總結
如今隨著現(xiàn)代科學技術的不斷發(fā)展,計算機以及網絡技術也越來越發(fā)達。SQL Server數(shù)據(jù)庫在人們的生活中也越來越普及,人們對于數(shù)據(jù)庫運行的性能有了更大的需求,所以對SQL數(shù)據(jù)庫進行一些有效的優(yōu)化以及設計是如今需要去做的事。這不僅僅需要相關的技術優(yōu)化人員具有過硬的技術,也需要技術人員多優(yōu)化過程的認真負責,這樣,才能保證數(shù)據(jù)庫的使用更加的先進。
參考文獻:
[1]鐘克吟.SQL Server數(shù)據(jù)庫應用程序性能優(yōu)化方案研究[J].計算機與數(shù)字工程,2008(06):161-163+174.
[2]張晶.嵌入式移動數(shù)據(jù)庫SQL Server CE應用程序的開發(fā)與設計[J].電腦知識與技術(學術交流),2007(10):923-924.
[3]梁旗軍,羅海平,鄔志紅,段喜龍.一種在PB應用程序中自動附加并連接SQL Server數(shù)據(jù)庫的方法[J].計算機與現(xiàn)代化,2006(02):50-52.
[4]張婕.袁力田,淺談SQL Server數(shù)據(jù)庫應用程序中數(shù)據(jù)庫的安全性[J].數(shù)字技術與應用,2017(08):203+205.
[5]谷震離.杜根遠,SQL Server數(shù)據(jù)庫應用程序中數(shù)據(jù)庫安全性研究[J].計算機工程與設計,2007(15):3717-3719.