

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫優(yōu)化數(shù)據(jù)庫優(yōu)化的目的:避免磁盤IO瓶頸、減少CPU利用率和減少資源競爭。數(shù)據(jù)庫的優(yōu)化包括物理上的優(yōu)化,如良好的平臺(硬件平臺、網(wǎng)絡(luò)平臺),合理的環(huán)境參數(shù)(操作系統(tǒng)環(huán)境參數(shù)、acle環(huán)境參數(shù)),及軟件上的優(yōu)化。一、數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計1、數(shù)據(jù)庫的邏輯設(shè)計、包括表與表之間的關(guān)系是優(yōu)化關(guān)系型數(shù)據(jù)庫性能的核心。一個好的邏輯數(shù)據(jù)庫設(shè)計可以為優(yōu)化數(shù)據(jù)庫和應(yīng)用程序打下良好的基礎(chǔ)。標(biāo)準(zhǔn)化的數(shù)據(jù)庫邏輯設(shè)計包括用多的、有相互關(guān)系的窄表來代替很多列的長數(shù)據(jù)
2、表。下面是一些使用標(biāo)準(zhǔn)化表的一些好處。A:由于表窄,因此可以使排序和建立索引更為迅速B:由于多表,所以多鏃的索引成為可能C:更窄更緊湊的索引D:每個表中可以有少一些的索引,因此可以提高update等的速度,因為這些操作在索引多的情況下會對系統(tǒng)性能產(chǎn)生很大的影響E:更少的空值和更少的多余值,增加了數(shù)據(jù)庫的緊湊性由于標(biāo)準(zhǔn)化,所以會增加了在獲取數(shù)據(jù)時引用表的數(shù)目和其間的連接關(guān)系的復(fù)雜性。太多的表和復(fù)雜的連接關(guān)系會降低服務(wù)器的性能,因此在這兩者
3、之間需要綜合考慮。定義具有相關(guān)關(guān)系的主鍵和外來鍵時應(yīng)該注意的事項主要是:用于連接多表的主鍵和參考的鍵要有相同的數(shù)據(jù)類型。2、鍵的設(shè)計基本表設(shè)計中,表的主鍵、外鍵、索引設(shè)計占有非常重要的地位,它們與系統(tǒng)的運行性能密切相關(guān)。(1)主鍵(PrimaryKey):主鍵被用于復(fù)雜的SQL語句時,頻繁地在數(shù)據(jù)訪問中被用到。一個表只有一個主鍵。主鍵應(yīng)該有固定值(不能為Null或缺省值,要有相對穩(wěn)定性),不含代碼信息,易訪問。把常用(眾所周知)的列作為
4、主鍵才有意義。短主鍵最佳(小于25bytes),主鍵的長短影響索引的大小,索引的大小影響索引頁的大小,從而影響磁盤IO。主鍵分為自然主鍵和人為主鍵。自然主鍵由實體的屬性構(gòu)成,自然主鍵可以是復(fù)合性的,在形成復(fù)合主鍵時,主鍵列不能太多,復(fù)合主鍵使得Join操作復(fù)雜化、也增加了外鍵表的大小。人為主鍵是,在沒有合適的自然屬性鍵、或自然屬性復(fù)雜或靈敏度高時,人為形成的。人為主鍵一般是整型值(滿足最小化要求),沒有實際意義,也略微增加下降一些。實驗
5、表明,不要在一個單表上用大量的索引,不要在共享的列上(指在多表中用了參考約束)使用重疊的索引。在某一列上檢查唯一的數(shù)據(jù)的個數(shù),比較它與表中數(shù)據(jù)的行數(shù)做一個比較。這就是數(shù)據(jù)的選擇性,這比較結(jié)果將會幫助你決定是否將某一列作為侯選的索引列,如果需要,建哪一種索引。三、查詢語句的優(yōu)化1、使用解釋計劃。2、使用索引。3、慎重使用NOTIN、IN子句,因為IN會使系統(tǒng)無法使用索引,而只能直接搜索表中的數(shù)據(jù),能用BETWEEN就不用IN。很多時候使用
6、EXISTS,NOTEXISTS會更好些。4、盡量避免WHERE條件中使用!=,操作符。5、盡量避免WHERE條件中使用條件,否則將導(dǎo)致引擎放棄索引而進行全表掃描。6、盡量避免WHERE條件中對字段進行NULL判斷,否則將導(dǎo)致引擎放棄索引而進行全表掃描。7、避免在索引過的數(shù)據(jù)中,使用非打頭字母搜索。如FROMAWHERENAMELIKE%L%;不使用索引FROMAWHERESUBSTR(NAME21)=L;不使用索引FROMAWHERE
7、NAMELIKEL%;使用索引8、必要時可以強制查詢優(yōu)化器使用索引。9、避免在WHERE條件中對字段進行表達式操作,如WHEREA2=100改為A=2100。10、避免在WHERE條件中對字段進行函數(shù)操作,如SUBSTR等。11、使用復(fù)合索引時,必須是該索引的第一個字段作為條件,否則不會使用索引。12、能用DISTINCT的就不用GROUPBY。13、能用UNIONALL就不用UNION。14、盡量使用綁定變量。Executeimmed
8、iateintotvalues(:x)usingi而不是Executeimmediateintotvalues(||i||)15、可以使用反連接來代替NOTIN。16、在嵌套查詢中使用ROWNUM。四、使用存儲過程1存儲過程因為SQL語句已經(jīng)預(yù)編繹過了,因此運行的速度比較快。2存儲過程可以接受參數(shù)、輸出參數(shù)、返回單個或多個結(jié)果集以及返回值??梢韵虺绦蚍祷劐e誤原因。3存儲過程運行比較穩(wěn)定,不會有太多的錯誤。只要一次成功,以后都會按這個程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫優(yōu)化探討
- 數(shù)據(jù)庫查詢優(yōu)化之我見
- sql數(shù)據(jù)庫查詢優(yōu)化
- ORACLE數(shù)據(jù)庫性能優(yōu)化.pdf
- 淺議數(shù)據(jù)庫的性能優(yōu)化
- 數(shù)據(jù)庫優(yōu)化服務(wù)外文翻譯
- 數(shù)據(jù)庫優(yōu)化服務(wù)外文翻譯
- 優(yōu)化myschool數(shù)據(jù)庫設(shè)計總結(jié)
- 數(shù)據(jù)庫優(yōu)化服務(wù)外文翻譯
- 數(shù)據(jù)庫檢索acs數(shù)據(jù)庫
- 數(shù)據(jù)庫課程設(shè)計---數(shù)據(jù)庫
- 數(shù)據(jù)庫優(yōu)化服務(wù)外文翻譯.doc
- nativexml數(shù)據(jù)庫的查詢優(yōu)化研究
- 關(guān)系數(shù)據(jù)庫查詢優(yōu)化.pdf
- Oracle數(shù)據(jù)庫性能優(yōu)化研究.pdf
- 數(shù)據(jù)庫優(yōu)化服務(wù)外文翻譯.doc
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫操作及認(rèn)識數(shù)據(jù)庫
- 數(shù)據(jù)庫實驗jdbc連接數(shù)據(jù)庫
評論
0/150
提交評論