資源描述:
《sql server數(shù)據(jù)庫性能優(yōu)化》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、SQLServer數(shù)據(jù)庫性能優(yōu)化:隨著計(jì)算機(jī)領(lǐng)域不斷發(fā)展,SQLServer數(shù)據(jù)庫的廣泛應(yīng)用,對其性能以及開發(fā)技能提出了更高層次的要求。對此,通過全面分析開發(fā)SQLServer數(shù)據(jù)庫應(yīng)用系統(tǒng)在各個(gè)設(shè)計(jì)階段如何進(jìn)行數(shù)據(jù)庫性能優(yōu)化,更為透切的了解性能優(yōu)化的關(guān)鍵環(huán)節(jié),有針對性的進(jìn)行數(shù)據(jù)庫性能優(yōu)化,進(jìn)而全面提高應(yīng)用系統(tǒng)的運(yùn)行速度。 關(guān)鍵詞:SQLServer數(shù)據(jù)庫性能優(yōu)化 隨著最近幾年國內(nèi)各大X站迅速發(fā)展趨勢,極大程度上帶動了計(jì)算機(jī)應(yīng)用系統(tǒng)以及數(shù)據(jù)庫的再次升級應(yīng)用。SQLServer數(shù)據(jù)庫在實(shí)際開發(fā)應(yīng)用過程中,由于應(yīng)用程序各個(gè)界面極其功能,對于專業(yè)軟件開發(fā)人員來講,并未有充足的精力
2、去認(rèn)真完成,進(jìn)而一定程度上,忽視了設(shè)計(jì)數(shù)據(jù)庫的重要性。嚴(yán)謹(jǐn)、合理有效的數(shù)據(jù)庫設(shè)計(jì)是X站及軟件順利開發(fā)應(yīng)用的保障,也是數(shù)據(jù)處理流精妙、界面精致的重要因素。不合理的數(shù)據(jù)庫設(shè)計(jì),將直接影響應(yīng)用系統(tǒng)性能的實(shí)際運(yùn)行。對此,開發(fā)、檢測與試運(yùn)行應(yīng)用系統(tǒng)的各個(gè)初始階段,部分檢測數(shù)據(jù)對系統(tǒng)內(nèi)部的個(gè)別較為薄弱環(huán)節(jié)極難發(fā)現(xiàn),而在實(shí)際應(yīng)用運(yùn)行階段之后,逐步增加的數(shù)據(jù)量,會降低系統(tǒng)的運(yùn)行性能,進(jìn)而再著手修正數(shù)據(jù)庫中的部分錯(cuò)誤性數(shù)據(jù),則將牽制影響到整個(gè)系統(tǒng)的應(yīng)用。針對此種情況,在初始設(shè)計(jì)數(shù)據(jù)庫的各個(gè)階段,周全考量系統(tǒng)各個(gè)功能實(shí)現(xiàn)的同時(shí),還需有針對性的優(yōu)化系統(tǒng)的整體性能。 一、合理冗余 有效實(shí)現(xiàn)完整性數(shù)據(jù)目
3、的,設(shè)計(jì)數(shù)據(jù)庫的過程時(shí),需盡可能減少數(shù)據(jù)冗余的產(chǎn)生。同時(shí),具有一定矛盾沖突的數(shù)據(jù)查詢速度與完整性數(shù)據(jù),需全面確保完整性數(shù)據(jù)的前提下,可適當(dāng)產(chǎn)生合理性的數(shù)據(jù)冗余,進(jìn)而使數(shù)據(jù)查詢速度得到有效提高。如在人事查詢系統(tǒng)應(yīng)用中,通常采用工號和姓名字段一致性的原則設(shè)定表格記錄每位職員的詳細(xì)信息,并基于數(shù)據(jù)冗余盡可能減少的前提下,可忽視姓名字段僅設(shè)定工號字段建立人員工資表,對此,只需合理關(guān)聯(lián)人員信息表與工資表進(jìn)行查詢,即可獲得人員姓名、工號以及工資等各項(xiàng)數(shù)據(jù)信息。但考慮實(shí)際系統(tǒng)應(yīng)用中,此兩類信息表均是有較多記錄的表,進(jìn)行查詢時(shí),關(guān)聯(lián)速度較慢。周全考慮不能時(shí)常修改人員的工號與姓名,完整性數(shù)據(jù)信息不易
4、破壞,工資信息卻更改使用頻率較高,不可避免的產(chǎn)生一定的合理性數(shù)據(jù)冗余。在系統(tǒng)數(shù)據(jù)綜合質(zhì)量不受影響的前提下,增添合理的姓名字段于工資表中,進(jìn)而有效提高查詢工資信息的速度?! QLServer應(yīng)用數(shù)據(jù)庫在實(shí)際開發(fā)應(yīng)用過程中,系統(tǒng)涉及到的數(shù)據(jù)量、運(yùn)行速度以及編制程序的難易程度等各方面,開發(fā)人員均需周全考慮是否產(chǎn)生冗余,以及冗余是否合理等情況。通過以上工資信息查詢示例來看,添加人員姓名信息于工資信息表中,在一定程度上可適當(dāng)增強(qiáng)對該姓名信息的維護(hù)。 二、存儲過程的合理應(yīng)用 服務(wù)器端預(yù)先編譯好的一段語句,并利用存儲過程名和參數(shù)提供的相應(yīng)數(shù)據(jù)來具體執(zhí)行數(shù)據(jù)存儲過程,即是系統(tǒng)對數(shù)據(jù)的存儲。對
5、比普通的數(shù)據(jù)編譯語句而言,數(shù)據(jù)每次執(zhí)行,存儲過程只需將存儲過程名以及參數(shù)傳送給服務(wù)器即可,轉(zhuǎn)變了傳統(tǒng)需傳送大量語句的特點(diǎn),在極大程度上縮短了傳輸數(shù)據(jù)的時(shí)間。同時(shí),基于提前經(jīng)過合理優(yōu)化和編譯好的每組語句,每次執(zhí)行語句,存儲過程省略了分析語法以及查詢優(yōu)化等過程,使語句在服務(wù)器上的實(shí)際執(zhí)行速度得到了更為顯著的提供?! ¢_發(fā)SQLServer數(shù)據(jù)庫的實(shí)際應(yīng)用系統(tǒng)時(shí),需預(yù)先建立全面性的存儲過程,并認(rèn)真的編寫存儲數(shù)據(jù)的語句。但由于存儲過程的建立,以及存儲過程對執(zhí)行語句速度成效的明顯提高,通常受到應(yīng)用開發(fā)人員的忽略,一定情況下,降低了應(yīng)用系統(tǒng)的運(yùn)行速度。對此,數(shù)據(jù)庫系統(tǒng)的開發(fā),需嚴(yán)格按照系統(tǒng)運(yùn)行
6、性能的要求,進(jìn)行合理的存儲過程建立,并正確應(yīng)用,從而提高應(yīng)用系統(tǒng)執(zhí)行的速度?! 【哂邢鄬Κ?dú)立性以及處理復(fù)雜度的應(yīng)用系統(tǒng),需盡可能應(yīng)用存儲過程?! ∠到y(tǒng)中相對獨(dú)立并且比較復(fù)雜的處理建議一定要用存儲過程。如典型應(yīng)用存儲過程的每月月底結(jié)賬的財(cái)務(wù)系統(tǒng)。處理月底結(jié)賬以及比較固定的幾張數(shù)據(jù)信息表,相對復(fù)雜,使用簡單的SQLServer語句,只需短短的幾分或幾十分鐘即可順利完成存儲過程的處理工作,傳輸、編譯以及優(yōu)化語句均由存儲過程一一實(shí)現(xiàn)。 除此之外,應(yīng)用系統(tǒng)的模塊化設(shè)定,也可應(yīng)用數(shù)據(jù)存儲過程來實(shí)現(xiàn)。由豐富經(jīng)驗(yàn)的應(yīng)用系統(tǒng)管理人員統(tǒng)一編訂大量數(shù)據(jù)信息的存儲過程,在一定程度上,使客戶端應(yīng)用程序開發(fā)
7、人員編譯高復(fù)雜度的語句能力需求指標(biāo)得到降低,并統(tǒng)一維護(hù)應(yīng)用程度,規(guī)避了適時(shí)改變處理過程而造成相關(guān)客戶端程序修改的情況?! ∪⑹聞?wù)的合理應(yīng)用 每組語句是否順利執(zhí)行,即是事務(wù)應(yīng)用的重要之處。如進(jìn)行銀行轉(zhuǎn)賬時(shí),每個(gè)賬戶金額在增加的前提下,需將另外相應(yīng)的賬戶金額減少,且同時(shí)執(zhí)行此兩條語句,若未順利執(zhí)行一條語句,相應(yīng)的,將回滾另外一條語句,也即確保了完整性的數(shù)據(jù)信息。對比普通的數(shù)據(jù)語句來講,需詳細(xì)設(shè)計(jì)事務(wù)應(yīng)用中的每條語句。開始應(yīng)用之后,較多的系統(tǒng)數(shù)據(jù)資源將被系統(tǒng)鎖定,直至提