陳忠菊
摘 要:隨著SQL server數(shù)據(jù)庫的不斷應用,被使用的也是越來越多,而在使用的過程中,由于操作和使用的不正確,會造成SQL server數(shù)據(jù)庫出現(xiàn)速度慢等問題,如何更好的優(yōu)惠SQL server數(shù)據(jù)庫成為一個問題。該文從SQL server數(shù)據(jù)庫優(yōu)化的概述,分析了影響SQL server數(shù)據(jù)庫性能的因素,提出了優(yōu)化SQL server數(shù)據(jù)庫的具體方法和措施。
關鍵詞:SQL 數(shù)據(jù)庫 優(yōu)化 措施
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-098X(2015)05(b)-0041-01
1 SQL server數(shù)據(jù)庫優(yōu)化的概述
所謂數(shù)據(jù)庫性能優(yōu)化是指對數(shù)據(jù)庫系統(tǒng)的應用程序、系統(tǒng)參數(shù)、硬件進行調整,優(yōu)化數(shù)據(jù)庫的數(shù)據(jù)管理性能??傮w來說,數(shù)據(jù)庫的數(shù)據(jù)管理性能主要與操作系統(tǒng)和硬件配置相關,通過改善操作系統(tǒng)與硬件配置之間的關系能夠有效提高數(shù)據(jù)庫的數(shù)據(jù)管理性能,從而改善數(shù)據(jù)庫的運行效率。
SQL數(shù)據(jù)庫性能優(yōu)化的原理是:將數(shù)據(jù)庫視為獨立的系統(tǒng),在終端上采用交互的方式進行使用,或者將SQL嵌入到其他高級程序中使用。設計者所編寫的SQL語句的質量對系統(tǒng)的性能具有十分重要的影響,質量差的SQL語句不但執(zhí)行時間長,耗費硬件資源多,而且搜索結果也不用一定好。質量好的SQL語句不僅能夠大大的減少系統(tǒng)的執(zhí)行時間,而且還能提高軟件的性能,減少不必要的數(shù)據(jù)掃描和傳輸,防止系統(tǒng)資源被白白的浪費掉。為此,我們必須對SQL語句進行最大程度的優(yōu)化,盡量減少數(shù)據(jù)量,以優(yōu)化數(shù)據(jù)庫的性能。
2 影響SQL server數(shù)據(jù)庫性能的因素分析
對SQL server數(shù)據(jù)庫的性能造成影響的因素,會有很多的方面的情況,主要有以下幾個方面的原因。
2.1 數(shù)據(jù)庫模型的設計
數(shù)據(jù)庫的模型中,有很多項目的內容,主要有表的設計、規(guī)范,游標的使用,數(shù)據(jù)的表的數(shù)量和大小的控制。針對這些情況,數(shù)據(jù)庫的相關人員應該做好提前的預案,對需要進行模型處理的需要進行相應的正確的處理方式進行設計。處理的具體內容會包括以下的幾個方面:數(shù)據(jù)庫主鍵的選取,數(shù)據(jù)的結構設計,數(shù)據(jù)的冗余性分析,屬性的研究以及數(shù)據(jù)庫中數(shù)據(jù)表的如何分配等內容。
2.2 數(shù)據(jù)庫中索引的研究分析
數(shù)據(jù)庫中索引的設計主要會涉及以下幾個方面:數(shù)據(jù)在表上的具體分布,數(shù)據(jù)庫中表的具體數(shù)量,數(shù)據(jù)庫中主鍵的使用以及其填充因子的具體操作和使用,以及數(shù)據(jù)庫中的規(guī)范性約束比如約束性和唯一性等。索引的具體分布,具體的統(tǒng)計數(shù)量以及其在數(shù)據(jù)庫中的利用效率,這些都是需要進行研究和分析的內容。我們都知道索引對于數(shù)據(jù)庫的重要性,數(shù)據(jù)庫的性能是否好,直接取決于索引的方式是夠合適和恰當。在數(shù)據(jù)庫的運行過程中,很大一部分時間都是花在了數(shù)據(jù)庫的連接效率上,如果能夠很好的提高數(shù)據(jù)庫的連接效率,就能對數(shù)據(jù)的運算中消耗的時間和數(shù)據(jù)庫的性能的提升,起到非常關鍵的作用。在數(shù)據(jù)庫設計的時候,一定要盡可能的對于數(shù)據(jù)庫的連接中盡可能的簡單和明了,應該積極的避開繁瑣和復雜的連接運算,這樣能夠在提升數(shù)據(jù)庫運行效率方面起到很好的作用。
2.3 數(shù)據(jù)庫的事務管理功能
數(shù)據(jù)庫中一個必不可少的環(huán)節(jié)就是事務,它是構成數(shù)據(jù)庫具體操作中,保證數(shù)據(jù)完整性的一個重要操作,從而才構成了數(shù)據(jù)庫中不可分隔的一些工作的單元。在數(shù)據(jù)庫中數(shù)據(jù)的生成、修改、復制、更新、刪除等這樣操作,都是和事務的管理密不可分,也正是事務的這些性能,從而才保證了數(shù)據(jù)庫性能的不斷提升,從而對數(shù)據(jù)庫的運行效率更加的優(yōu)化。
3 SQL server數(shù)據(jù)庫的優(yōu)化具體措施
3.1 SQL server數(shù)據(jù)庫的優(yōu)化設計
3.1.1 數(shù)據(jù)庫的事務優(yōu)化設計
數(shù)據(jù)庫中的命令的執(zhí)行,是由很多的數(shù)據(jù)庫的語句來進行組合構成的,這些數(shù)據(jù)庫的語句在執(zhí)行的過程中,過程是由服務器來發(fā)出,然后通過事務來執(zhí)行數(shù)據(jù)庫的語句,從而來完成整個的邏輯行為。在這個過程中,若想讓數(shù)據(jù)庫的執(zhí)行速度快,那么就必須要將事務進行相應的優(yōu)化設計,很好的起到縮短數(shù)據(jù)庫執(zhí)行的效率,從而從設計方面的對數(shù)據(jù)庫進行優(yōu)化。
3.1.2 對數(shù)據(jù)的返回信息進行限制
對數(shù)據(jù)庫的設計的時候,一定要盡可能避免產生過多的冗余數(shù)據(jù),設計的數(shù)據(jù)庫的執(zhí)行語句,務必簡單化和簡潔化,讓數(shù)據(jù)庫在執(zhí)行的過程中,避免造成數(shù)據(jù)的過多的返回現(xiàn)象。因為,越是多的數(shù)據(jù)返回,會造成數(shù)據(jù)庫在執(zhí)行查詢的過程中,無形中造成數(shù)據(jù)庫的執(zhí)行負擔,從而造成數(shù)據(jù)庫的效率和速度緩慢,從而造成數(shù)據(jù)的擁堵和堵塞的情況發(fā)生。冗余數(shù)據(jù)造成數(shù)據(jù)庫的執(zhí)行緩慢,會造成客戶機的更加的受影響,更會造成客戶機端的數(shù)據(jù)錯誤。
3.1.3 減少對服務器的訪問次數(shù)
數(shù)據(jù)庫在執(zhí)行的過程中,會對已經產生的數(shù)據(jù)存貯在數(shù)據(jù)庫中,其他的客戶機通過對數(shù)據(jù)庫的訪問,從而得到所需要的數(shù)據(jù)。數(shù)據(jù)庫的這種機制設置,是為了做到對各客戶機之間更加方便的數(shù)據(jù)共享,從而減少各客戶機對數(shù)據(jù)的檢索時間。但是當很多客戶機都對服務器頻繁訪問的時候,會無形中加大服務器的工作壓力。解決這個問題,需要在服務器中提前進行數(shù)據(jù)的返回程序,從而減少各客戶機訪問的時間,從而提高操作的性能和運行速度。
3.1.4 加快速度的顯示,提高屏幕的切換
加快平面的切換速度,需要從以下幾個方面做起:在設置顯示的時候,務必簡單化設置,避免過于復雜的顯示功能,造成顯示的時間增加。在服務器的數(shù)據(jù)在返回以后,然后再對數(shù)據(jù)進行集中的顯示,避免造成數(shù)據(jù)的等待情況。在數(shù)據(jù)的檢索和搜索的過程中,對緩沖區(qū)的數(shù)據(jù)數(shù)量進行相應的限制,避免造成數(shù)據(jù)的擁堵,從而提高數(shù)據(jù)庫的運行效率。
3.2 通過SQL語句進行對數(shù)據(jù)的優(yōu)化
(1)使用相同的編碼風格,在SQL語句發(fā)送到服務器后,需要進行語句的解析,通過執(zhí)行返回結果。在語句解析階段,系統(tǒng)首先在共享SGA區(qū)查找是否有相同的SQL語句,如果有則直接執(zhí)行,省去解析的步驟。如果沒有,則進入解析步驟。
(2)采用TRUNCATE代替DELETE進行刪除操作。采用TRUNCATE比DELETE語句速度更快,占用的系統(tǒng)資源和事務日志資源更少。DELETE屬于DML語言,每次只會進行一行的刪除,并將事務日志中對應的記錄進行刪除。
(3)IN和EXIST。在SQL語句的編寫過程中,需要經常在查詢結果中獲取一個值列表,在查詢結果中使用IN,比較某一值是否存在于列表中,能夠簡單方便的進行查詢。在業(yè)務較為密集的SQL中,應該盡量不免使用IN操作符,而使用EXIST去代替IN,這樣查詢的效果會更好。
3.3 對邏輯結構進行優(yōu)化
視圖對于一個數(shù)據(jù)庫來說,就是一個虛擬表。視圖的SQL語句查詢方法不是采用數(shù)據(jù)構造的,二是采用限制用戶對表進行檢索實現(xiàn)的。數(shù)據(jù)庫的邏輯結構其實就是構造數(shù)據(jù)表的方法。
參考文獻
[1] 張寶政.基于查詢語句之外的數(shù)據(jù)庫優(yōu)化技術研究[J].硅谷,2012(13):85,131.
[2] 李霞.淺談對SQL數(shù)據(jù)庫系統(tǒng)性能的優(yōu)化[J].科技信息,2013(26):302.
[3] 王科.Oracle數(shù)據(jù)庫優(yōu)化原則和方法[J].學周刊:A,2010(9):5.