中国韩国日本在线观看免费,A级尤物一区,日韩精品一二三区无码,欧美日韩少妇色

SQLserver數(shù)據(jù)庫(kù)的性能優(yōu)化策略

發(fā)布時(shí)間:2015-02-13 09:42

摘 要:

摘 要:在信息化環(huán)境下,各種信息系統(tǒng)都離不開數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的性能也直接影響了信息管理系統(tǒng)的運(yùn)行和應(yīng)用。因此,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行性能優(yōu)化一直是計(jì)算機(jī)領(lǐng)域的一個(gè)重要課題。SQL server作為windows平臺(tái)下的一款主流數(shù)據(jù)庫(kù),有著廣大的用戶群和應(yīng)用領(lǐng)域,因此對(duì)于SQL server數(shù)據(jù)庫(kù)的性能優(yōu)化研究也非常重要。本文站在數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)的視角,對(duì)SQL server數(shù)據(jù)庫(kù)的性能優(yōu)化策略進(jìn)行了探討。

關(guān)鍵詞:

關(guān)鍵詞:SQL server 數(shù)據(jù)庫(kù) 性能優(yōu)化策略

  隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域也在不斷擴(kuò)大,各種信息系統(tǒng)已經(jīng)在人們的工作、生活中都得到了廣泛的應(yīng)用,特別是一些基于互聯(lián)網(wǎng)的管理系統(tǒng),已經(jīng)與人們的工作、生活密不可分了。因此,這些信息數(shù)據(jù)庫(kù)系統(tǒng)的性能也越來(lái)越受到了人們的關(guān)注,尤其是一些數(shù)據(jù)訪問多、規(guī)模大、高并發(fā)的信息數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)是整個(gè)信息系統(tǒng)的核心部分,也是最為基礎(chǔ)的部分,數(shù)據(jù)庫(kù)的設(shè)計(jì)很大程度上關(guān)系到整個(gè)信息系統(tǒng)性能的優(yōu)劣。

  SQL是英文structured query language的縮寫,意思是結(jié)構(gòu)化查詢語(yǔ)言。SQL server是一個(gè)大型的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),是由微軟公司開發(fā)推廣的,也是windows平臺(tái)下的一款主流數(shù)據(jù)庫(kù)產(chǎn)品,在多種信息管理系統(tǒng)中得到了應(yīng)用。 windows平臺(tái)下的SQL server數(shù)據(jù)庫(kù)具有非常高性能的設(shè)計(jì),也能夠很大程度上為系統(tǒng)管理者提供便捷和先進(jìn)的處理方式,此外,SQL server數(shù)據(jù)庫(kù)具有強(qiáng)大的處理功能和兼容性,能夠有效保證數(shù)據(jù)的完整性和安全性,其強(qiáng)大的管理功能和數(shù)據(jù)處理功能也為信息管理系統(tǒng)提供一個(gè)數(shù)據(jù)庫(kù)平臺(tái)。

  對(duì)SQL server數(shù)據(jù)庫(kù)進(jìn)行性能優(yōu)化,就是盡可能的提高數(shù)據(jù)庫(kù)的響應(yīng)速度和服務(wù)質(zhì)量。總體來(lái)說,就是要有效提高系統(tǒng)響應(yīng)時(shí)間和吞吐量?jī)身?xiàng)指標(biāo)。要優(yōu)化數(shù)據(jù)庫(kù)性能,,需要從數(shù)據(jù)庫(kù)設(shè)計(jì)、應(yīng)用程序設(shè)計(jì)和接口設(shè)計(jì)等多個(gè)方面進(jìn)行,這是一個(gè)復(fù)雜的系統(tǒng)性工作。

  要對(duì)數(shù)據(jù)庫(kù)的性能進(jìn)行優(yōu)化,其關(guān)鍵是要數(shù)據(jù)庫(kù)的設(shè)計(jì)方案要科學(xué)合理,科學(xué)合理的數(shù)據(jù)模型,不但能夠保障數(shù)據(jù)庫(kù)系統(tǒng)的正常運(yùn)行,而且也能夠很大程度上降低代碼編寫和維護(hù)的難度,提高數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)際運(yùn)行性能。因此,在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)方案制定過程中,最為重要的是要充分了解用戶的需求,嚴(yán)格按照軟件工程的規(guī)范和流程來(lái)進(jìn)行。

  在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,要從多個(gè)方面采取優(yōu)化策略,這些策略有機(jī)結(jié)合起來(lái),從而設(shè)計(jì)出一個(gè)符合用戶要求的高性能的數(shù)據(jù)庫(kù),具體來(lái)說,可以從以下幾個(gè)方面著手。


1 數(shù)據(jù)表設(shè)計(jì)的優(yōu)化策略

  數(shù)據(jù)表是數(shù)據(jù)庫(kù)中一個(gè)非常重要的對(duì)象,也是其他對(duì)象的基礎(chǔ)。一個(gè)數(shù)據(jù)庫(kù)只是一個(gè)框架,數(shù)據(jù)表才是實(shí)質(zhì)性內(nèi)容,數(shù)據(jù)庫(kù)中包含有多個(gè)數(shù)據(jù)表。在進(jìn)行數(shù)據(jù)庫(kù)基本表設(shè)計(jì)的時(shí)候,要注意遵循兩個(gè)基本原則:一是標(biāo)準(zhǔn)化和規(guī)范化原則。數(shù)據(jù)庫(kù)基本表的設(shè)計(jì)標(biāo)準(zhǔn)有幾種,其中3NF標(biāo)準(zhǔn)是最為恰當(dāng)和平衡的選擇,因?yàn)槠鋵?duì)能夠有效提高數(shù)據(jù)庫(kù)性能,也方便之后對(duì)系統(tǒng)進(jìn)行擴(kuò)展,同時(shí)還能夠?qū)σ恍⿺?shù)據(jù)冗余進(jìn)行消除;二是應(yīng)用數(shù)據(jù)驅(qū)動(dòng)。在設(shè)計(jì)數(shù)據(jù)庫(kù)基本表的時(shí)候,要使用數(shù)據(jù)驅(qū)動(dòng)方式,因?yàn)閿?shù)據(jù)驅(qū)動(dòng)方式對(duì)于策略的變更和維護(hù)十分有利,從而有效提高系統(tǒng)的可擴(kuò)展性,這是硬性編碼不能做到的。

  索引能夠很大程度上影響數(shù)據(jù)庫(kù)的整體性能,因此,在設(shè)計(jì)基本表的時(shí)候要設(shè)計(jì)和選擇合適的索引;同時(shí),對(duì)于每一個(gè)索引,都要選擇恰當(dāng)?shù)膬?yōu)化策略。

  聚簇索引又叫做簇索引,聚簇索引的頁(yè)面指針指向數(shù)據(jù)頁(yè)面,因此,每個(gè)基本表只能建立一個(gè)聚簇索引,而且聚簇索引的數(shù)據(jù)查找速度要快于非聚簇索引。聚簇索引是用來(lái)決定基本表中數(shù)據(jù)的物理順序的。在創(chuàng)建和選擇簇索引的時(shí)候,要基于幾個(gè)基本原則:必須要有包含這樣一種列,這種列中包含很多完全不同數(shù)據(jù);能夠返回大量結(jié)果的查詢;要使用“BETWEEN”及“<”、“>”、“<=”、“>=”、“==”、“!=”等關(guān)系運(yùn)算符返回的查詢。

  非聚簇索引,又稱為非簇索引。非聚簇索引則與聚簇索引不同,其葉級(jí)頁(yè)指向表中的記錄,記錄的物理順序與邏輯順序沒有必然聯(lián)系。如果信息管理系統(tǒng)要進(jìn)行數(shù)據(jù)搜索的時(shí)候需要通過多種途徑來(lái)進(jìn)行的話,非簇索引就能夠發(fā)揮很大的作用了,其對(duì)于數(shù)據(jù)庫(kù)的性能有極大的提升。并不是所有情況下都需要?jiǎng)?chuàng)建非簇索引,非簇索引的創(chuàng)建可以在以下幾種情況下進(jìn)行:一是不會(huì)返回大量結(jié)果的查詢;二是有這樣一種列,這種列會(huì)經(jīng)常被返回精確匹配結(jié)果的條件查詢所引用;三是包含大量完全不同數(shù)據(jù)的列,而且在某個(gè)列上已經(jīng)建立了簇索引。

  創(chuàng)建索引有正反兩方面的影響,正面的影響是能夠有效提高系統(tǒng)的性能,負(fù)面的影響是造成時(shí)間和空間方面的不良反應(yīng)。因此,在進(jìn)行索引的設(shè)計(jì)時(shí),設(shè)計(jì)人員應(yīng)該要從多個(gè)方面進(jìn)行綜合考慮,達(dá)成一個(gè)良好的平衡。這也要求設(shè)計(jì)人員要杜絕創(chuàng)建無(wú)效索引,而且如果負(fù)面影響超過正面影響,那就應(yīng)該要考慮使用臨時(shí)表等替代措施來(lái)優(yōu)化系統(tǒng)性能。


2 數(shù)據(jù)庫(kù)其他對(duì)象的存放策略

  數(shù)據(jù)庫(kù)中除了基本表之外,還存在很多的對(duì)象,這些對(duì)象的存儲(chǔ)問題也是影響系統(tǒng)性能的重要因素。對(duì)象的存儲(chǔ)和訪問是通過I/O設(shè)備來(lái)進(jìn)行的,而且通常情況下,I/O設(shè)備是大型數(shù)據(jù)庫(kù)性能提升的一個(gè)瓶頸和短板,要有效提升系統(tǒng)的性能,就必須充分考慮這些對(duì)象的存儲(chǔ)。

  大型系統(tǒng)一般不會(huì)只有一個(gè)磁盤,而是多個(gè)磁盤并存,因此要避免I/O設(shè)備給系統(tǒng)帶來(lái)給帶來(lái)了瓶頸,就要采取必要的措施,對(duì)系統(tǒng)中的硬件設(shè)備進(jìn)行充分的使用,可以采用并行的I/O機(jī)制,讓數(shù)據(jù)存放跨越多個(gè)設(shè)備,不同性質(zhì)訪問的數(shù)據(jù)要進(jìn)行分別存放。

  在大型信息管理系統(tǒng)中,另一個(gè)影響系統(tǒng)性能的環(huán)節(jié)是事務(wù)日志。對(duì)于事務(wù)日志的存放,要將其放在單獨(dú)的磁盤中,不要與其他數(shù)據(jù)文件存儲(chǔ)在一起。因?yàn)檫@樣做一方面可以減少系統(tǒng)的開銷,另外一方面也有利于系統(tǒng)障礙恢復(fù)。

  對(duì)于訪問頻率高的數(shù)據(jù)和訪問頻率低的表進(jìn)行分別存儲(chǔ),分別存儲(chǔ)對(duì)于系統(tǒng)I/O性能的提升有著十分明顯的作用。


3 查詢分析設(shè)計(jì)的優(yōu)化策略

  數(shù)據(jù)庫(kù)應(yīng)用在信息管理系統(tǒng)當(dāng)中,系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的使用主要是用于數(shù)據(jù)查詢操作。在進(jìn)行系統(tǒng)設(shè)計(jì)的時(shí)候,應(yīng)該與數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)合在一起,互相呼應(yīng),有機(jī)結(jié)合。在設(shè)計(jì)整個(gè)應(yīng)用系統(tǒng)的時(shí)候,要對(duì)系統(tǒng)進(jìn)行優(yōu)化,優(yōu)化的主要操作是對(duì)查詢語(yǔ)句進(jìn)行優(yōu)化。查詢語(yǔ)句的優(yōu)化要堅(jiān)持一個(gè)基本原則,就是對(duì)具體問題具體分析,切不可一刀切,同時(shí)要簡(jiǎn)化邏輯讀和掃描次數(shù);另外,盡可能不用子查詢,而是應(yīng)該使用連接。

  其一,科學(xué)合理的設(shè)計(jì)和使用查詢過程,盡可能的使用查詢過程,因?yàn)榇鎯?chǔ)過程的執(zhí)行效率要比SQL語(yǔ)句高。

  其二,要盡可能的避免使用大量排序操作,因此,要在必要時(shí)采用臨時(shí)表。

  其三,要對(duì)游標(biāo)的使用加以限制,因?yàn)槭褂糜螛?biāo)會(huì)影響系統(tǒng)性能。

  其四,在一般情況下,不要向客戶端返回大量數(shù)據(jù),因?yàn)檫@樣會(huì)增加網(wǎng)絡(luò)數(shù)據(jù)的傳輸量,增大系統(tǒng)負(fù)擔(dān),從而影響系統(tǒng)性能。

  其五,對(duì)于批處理語(yǔ)句要充分使用,同時(shí)對(duì)于重復(fù)操作要多使用參數(shù)數(shù)組。


4 基本表擴(kuò)展設(shè)計(jì)優(yōu)化策略

  基于3NF標(biāo)準(zhǔn)設(shè)計(jì)的基本表不但應(yīng)用范圍廣,而且有著很強(qiáng)的優(yōu)越性。但是,在實(shí)際應(yīng)用中,基于3NF標(biāo)準(zhǔn)設(shè)計(jì)的基本表卻存在一些影響系統(tǒng)性能的因素,這些因素這不利于優(yōu)化系統(tǒng),提升系統(tǒng)性能。具體而言,這些影響因素主要包括具體的應(yīng)用,規(guī)模大的數(shù)據(jù)庫(kù)以及請(qǐng)求訪問的頻度等,如果不針對(duì)這些因素進(jìn)行一定的處理,就會(huì)影響對(duì)系統(tǒng)的優(yōu)化,進(jìn)而影響系統(tǒng)的性能。因此,在實(shí)際設(shè)計(jì)過程中,要根據(jù)這些因素來(lái)對(duì)部分基本表的行和列進(jìn)行分割。同時(shí)要選擇恰當(dāng)?shù)姆绞酱鎯?chǔ)冗余數(shù)據(jù)和衍生列,對(duì)相關(guān)分割表進(jìn)行合并處理等。這些策略和手段,確實(shí)是不符合3NF標(biāo)準(zhǔn)的,客觀上也增加了系統(tǒng)的開銷。但是,站在整個(gè)系統(tǒng)的角度,綜合來(lái)進(jìn)行考慮的話,這些策略和手段有利于優(yōu)化整個(gè)系統(tǒng),提升系統(tǒng)的性能。


5 鎖的優(yōu)化策略

  在多用戶條件下,系統(tǒng)實(shí)現(xiàn)并行處理的一個(gè)非常重要的機(jī)制就是鎖,這一機(jī)制的存在,讓系統(tǒng)能夠保證數(shù)據(jù)的一致性和完整性。但是鎖的存在,卻也存在負(fù)面影響,最主要的是影響系統(tǒng)的性能,因此在進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)和應(yīng)用設(shè)計(jì)的過程中,有一項(xiàng)非常重要的工作就是減少和杜絕死鎖的產(chǎn)生。要減少和杜絕死鎖的產(chǎn)生,就必須要遵循幾個(gè)基本原則:第一,在實(shí)際設(shè)計(jì)過程中,應(yīng)該要根據(jù)實(shí)際問題對(duì)長(zhǎng)事務(wù)進(jìn)行適當(dāng)?shù)姆纸,減少排它鎖的占用時(shí)間;第二,要對(duì)批處理語(yǔ)句進(jìn)行充分的使用,盡可能的減少在事務(wù)執(zhí)行過程中的交互,避免人為控制事務(wù)的長(zhǎng)短。

  有些數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的訪問頻率高,而且并發(fā)度也很高,對(duì)于這樣的數(shù)據(jù)庫(kù)系統(tǒng),應(yīng)該要使用一些對(duì)應(yīng)的方法和手段來(lái)優(yōu)化整個(gè)系統(tǒng)。比如說,對(duì)于每個(gè)查詢使用超時(shí)機(jī)制,科學(xué)合理的使用行鎖、頁(yè)鎖和表鎖,使用帶約束的連接等,這些措施都能夠有效避免死鎖的產(chǎn)生。


6 結(jié)語(yǔ)



本文編號(hào):14524

資料下載
論文發(fā)表

本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/14524_1.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶5cd4c***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com