數(shù)據(jù)庫(kù)優(yōu)化方案

數(shù)據(jù)庫(kù)優(yōu)化方案

ID:37803414

大小:117.50 KB

頁(yè)數(shù):20頁(yè)

時(shí)間:2019-05-31

數(shù)據(jù)庫(kù)優(yōu)化方案_第1頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化方案_第2頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化方案_第3頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化方案_第4頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化方案_第5頁(yè)
資源描述:

《數(shù)據(jù)庫(kù)優(yōu)化方案》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、數(shù)據(jù)庫(kù)優(yōu)化方案一、分析階段1二、設(shè)計(jì)階段11、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的規(guī)范化12、合理的冗余23、主鍵的設(shè)計(jì)24、外鍵的設(shè)計(jì)25、字段的設(shè)計(jì)36、數(shù)據(jù)庫(kù)物理存儲(chǔ)和環(huán)境的設(shè)計(jì)37、系統(tǒng)設(shè)計(jì)48、索引的設(shè)計(jì)4三、編碼階段41、只返回需要的數(shù)據(jù)52、盡量少做重復(fù)的工作53、注意事務(wù)和鎖64、注意臨時(shí)表和表變量的用法65、子查詢(xún)的用法76、慎用游標(biāo)107、盡量使用索引148、注意連接條件的寫(xiě)法169、其他需要注意的地方1610、學(xué)會(huì)分辯SQL語(yǔ)句的優(yōu)劣16四、測(cè)試、試運(yùn)行、維護(hù)階段17五、網(wǎng)上資料中一些說(shuō)法的個(gè)人理解1719一個(gè)系統(tǒng)的性能的提高,不單單是試運(yùn)行

2、或者維護(hù)階段的性能調(diào)優(yōu),也不單單是開(kāi)發(fā)階段的事情,而是在整個(gè)軟件生命周期都需要注意。所以我希望按照軟件生命周期的不同階段來(lái)總結(jié)數(shù)據(jù)庫(kù)性能優(yōu)化相關(guān)的注意事項(xiàng)。一、分析階段一般來(lái)說(shuō),在系統(tǒng)分析階段往往有太多需要關(guān)注的地方,系統(tǒng)各種功能性、可用性、可靠性、安全性需求往往吸引了我們大部分的注意力,但是,我們必須注意,性能是很重要的非功能性需求,必須根據(jù)系統(tǒng)的特點(diǎn)確定其實(shí)時(shí)性需求、響應(yīng)時(shí)間的需求、硬件的配置等。最好能有各種需求的量化的指標(biāo)。另一方面,在分析階段應(yīng)該根據(jù)各種需求區(qū)分出系統(tǒng)的類(lèi)型,大的方面,區(qū)分是OLTP(聯(lián)機(jī)事務(wù)處理系統(tǒng))和OLAP(聯(lián)機(jī)分

3、析處理系統(tǒng))。二、設(shè)計(jì)階段設(shè)計(jì)階段可以說(shuō)是以后系統(tǒng)性能的關(guān)鍵階段,在這個(gè)階段,有一個(gè)關(guān)系到以后幾乎所有性能調(diào)優(yōu)的過(guò)程—數(shù)據(jù)庫(kù)設(shè)計(jì)。在數(shù)據(jù)庫(kù)設(shè)計(jì)完成后,可以進(jìn)行初步的索引設(shè)計(jì),好的索引設(shè)計(jì)可以指導(dǎo)編碼階段寫(xiě)出高效率的代碼,為整個(gè)系統(tǒng)的性能打下良好的基礎(chǔ)。以下是性能要求設(shè)計(jì)階段需要注意的:  1、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的規(guī)范化數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的規(guī)范化就是我們一般所說(shuō)的范式,我們可以這樣來(lái)簡(jiǎn)單理解范式:第1規(guī)范:沒(méi)有重復(fù)的組或多值的列,這是數(shù)據(jù)庫(kù)設(shè)計(jì)的最低要求。第2規(guī)范:每個(gè)非關(guān)鍵字段必須依賴(lài)于主關(guān)鍵字,不能依賴(lài)于一個(gè)組合式主關(guān)鍵字的某些組成部分。消除部分依賴(lài)

4、,大部分情況下,數(shù)據(jù)庫(kù)設(shè)計(jì)都應(yīng)該達(dá)到第二范式。第3規(guī)范:一個(gè)非關(guān)鍵字段不能依賴(lài)于另一個(gè)非關(guān)鍵字段。消除傳遞依賴(lài),達(dá)到第三范式應(yīng)該是系統(tǒng)中大部分表的要求,除非一些特殊作用的表。19更高的范式要求這里就不再作介紹了,個(gè)人認(rèn)為,如果全部達(dá)到第二范式,大部分達(dá)到第三范式,系統(tǒng)會(huì)產(chǎn)生較少的列和較多的表,因而減少了數(shù)據(jù)冗余,也利于性能的提高?! ?、合理的冗余完全按照規(guī)范化設(shè)計(jì)的系統(tǒng)幾乎是不可能的,除非系統(tǒng)特別的小,在規(guī)范化設(shè)計(jì)后,有計(jì)劃地加入冗余是必要的。冗余可以是冗余數(shù)據(jù)庫(kù)、冗余表或者冗余字段,不同粒度的冗余可以起到不同的作用。冗余可以是為了編程方便而

5、增加,也可以是為了性能的提高而增加。從性能角度來(lái)說(shuō),冗余數(shù)據(jù)庫(kù)可以分散數(shù)據(jù)庫(kù)壓力,冗余表可以分散數(shù)據(jù)量大的表的并發(fā)壓力,也可以加快特殊查詢(xún)的速度,冗余字段可以有效減少數(shù)據(jù)庫(kù)表的連接,提高效率?! ?、主鍵的設(shè)計(jì)主鍵是必要的,SQLSERVER的主鍵同時(shí)是一個(gè)唯一索引,而且在實(shí)際應(yīng)用中,我們往往選擇最小的鍵組合作為主鍵,所以主鍵往往適合作為表的聚集索引。聚集索引對(duì)查詢(xún)的影響是比較大的,這個(gè)在下面索引的敘述。在有多個(gè)鍵的表,主鍵的選擇也比較重要,一般選擇總的長(zhǎng)度小的鍵,小的鍵的比較速度快,同時(shí)小的鍵可以使主鍵的B樹(shù)結(jié)構(gòu)的層次更少。主鍵的選擇還要注意

6、組合主鍵的字段次序,對(duì)于組合主鍵來(lái)說(shuō),不同的字段次序的主鍵的性能差別可能會(huì)很大,一般應(yīng)該選擇重復(fù)率低、單獨(dú)或者組合查詢(xún)可能性大的字段放在前面。  4、外鍵的設(shè)計(jì)外鍵作為數(shù)據(jù)庫(kù)對(duì)象,很多人認(rèn)為麻煩而不用,實(shí)際上,外鍵在大部分情況下是很有用的,理由是:19外鍵是最高效的一致性維護(hù)方法,數(shù)據(jù)庫(kù)的一致性要求,依次可以用外鍵、CHECK約束、規(guī)則約束、觸發(fā)器、客戶(hù)端程序,一般認(rèn)為,離數(shù)據(jù)越近的方法效率越高。謹(jǐn)慎使用級(jí)聯(lián)刪除和級(jí)聯(lián)更新,級(jí)聯(lián)刪除和級(jí)聯(lián)更新作為SQLSERVER2000當(dāng)年的新功能,在2005作了保留,應(yīng)該有其可用之處。我這里說(shuō)的謹(jǐn)慎,是因?yàn)?/p>

7、級(jí)聯(lián)刪除和級(jí)聯(lián)更新有些突破了傳統(tǒng)的關(guān)于外鍵的定義,功能有點(diǎn)太過(guò)強(qiáng)大,使用前必須確定自己已經(jīng)把握好其功能范圍,否則,級(jí)聯(lián)刪除和級(jí)聯(lián)更新可能讓你的數(shù)據(jù)莫名其妙的被修改或者丟失。從性能看級(jí)聯(lián)刪除和級(jí)聯(lián)更新是比其他方法更高效的方法?! ?、字段的設(shè)計(jì)字段是數(shù)據(jù)庫(kù)最基本的單位,其設(shè)計(jì)對(duì)性能的影響是很大的。需要注意如下:A、數(shù)據(jù)類(lèi)型盡量用數(shù)字型,數(shù)字型的比較比字符型的快很多。B、數(shù)據(jù)類(lèi)型盡量小,這里的盡量小是指在滿(mǎn)足可以預(yù)見(jiàn)的未來(lái)需求的前提下的。C、盡量不要允許NULL,除非必要,可以用NOTNULL+DEFAULT代替。D、少用TEXT和IMAGE,二進(jìn)

8、制字段的讀寫(xiě)是比較慢的,而且,讀取的方法也不多,大部分情況下最好不用。E、自增字段要慎用,不利于數(shù)據(jù)遷移?! ?、數(shù)據(jù)庫(kù)物理存儲(chǔ)和環(huán)境的設(shè)計(jì)在設(shè)計(jì)階段

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。