![關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化的實(shí)現(xiàn)途徑及方法_第1頁(yè)](http://file4.renrendoc.com/view/735dfcf49bc258675edda74e5d0ab367/735dfcf49bc258675edda74e5d0ab3671.gif)
![關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化的實(shí)現(xiàn)途徑及方法_第2頁(yè)](http://file4.renrendoc.com/view/735dfcf49bc258675edda74e5d0ab367/735dfcf49bc258675edda74e5d0ab3672.gif)
![關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化的實(shí)現(xiàn)途徑及方法_第3頁(yè)](http://file4.renrendoc.com/view/735dfcf49bc258675edda74e5d0ab367/735dfcf49bc258675edda74e5d0ab3673.gif)
![關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化的實(shí)現(xiàn)途徑及方法_第4頁(yè)](http://file4.renrendoc.com/view/735dfcf49bc258675edda74e5d0ab367/735dfcf49bc258675edda74e5d0ab3674.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化的實(shí)現(xiàn)途徑及方法
一、關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化在數(shù)據(jù)庫(kù)應(yīng)用程序系統(tǒng)中,調(diào)查操作的比例最高,其優(yōu)點(diǎn)直接影響應(yīng)用程序系統(tǒng)的性能。在本文中,我們介紹了基于關(guān)系數(shù)據(jù)庫(kù)調(diào)查現(xiàn)狀的關(guān)系數(shù)據(jù)庫(kù)調(diào)查優(yōu)化的基本原則,并總結(jié)了關(guān)系數(shù)據(jù)庫(kù)調(diào)查優(yōu)化的各種方法和方法。二、數(shù)據(jù)庫(kù)系統(tǒng)性能低下隨著計(jì)算機(jī)應(yīng)用的不斷深入和數(shù)據(jù)庫(kù)技術(shù)的不斷發(fā)展,幾乎所有的應(yīng)用程序都要和數(shù)據(jù)庫(kù)打交道,目前,絕大多數(shù)的數(shù)據(jù)庫(kù)應(yīng)用軟件都是基于關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。通過(guò)查詢數(shù)據(jù)庫(kù)可以很容易地獲得想要的數(shù)據(jù)。但是,現(xiàn)實(shí)中數(shù)據(jù)庫(kù)系統(tǒng)只重視用戶界面的華麗,而對(duì)于查詢語(yǔ)句的效率并不重視,導(dǎo)致應(yīng)用系統(tǒng)中某些查詢耗時(shí)長(zhǎng),響應(yīng)速度慢,甚至查詢結(jié)果不夠準(zhǔn)確,系統(tǒng)性能極為低下,資源浪費(fèi)嚴(yán)重。因此對(duì)查詢操作進(jìn)行優(yōu)化處理十分必要。三、投影數(shù)據(jù)處理對(duì)關(guān)系數(shù)據(jù)庫(kù)查詢優(yōu)化應(yīng)遵行以下基本原則:1選擇運(yùn)算應(yīng)盡可能先做,以得到較小的中間結(jié)果;2在執(zhí)行連接前對(duì)關(guān)系適當(dāng)?shù)仡A(yù)處理;3把投影運(yùn)算和選擇運(yùn)算同時(shí)進(jìn)行,減少分開(kāi)操作造成多次掃描文件;4把投影同其相鄰的雙目運(yùn)算結(jié)合起來(lái);5把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來(lái)成為一個(gè)連接運(yùn)算,減少時(shí)間和空間的開(kāi)銷;6按照小關(guān)系運(yùn)算優(yōu)化處理的原則,減少中間結(jié)果;8找出公共子表達(dá)式,預(yù)先計(jì)算并保存起來(lái).以免重復(fù)計(jì)算從而節(jié)省操作時(shí)間。四、引力優(yōu)化算法索引是數(shù)據(jù)庫(kù)中重要的數(shù)據(jù)結(jié)構(gòu),一個(gè)設(shè)計(jì)良好的索引可以減少I/O操作,從而顯著提高查詢效率。但也應(yīng)注意其負(fù)面影響,因?yàn)槊恳凰饕氖褂枚家源疟P容量作為代價(jià),并降低寫操作的性能。因此要合理使用索引。一般而言,其使用應(yīng)考慮以下原則:(1)在經(jīng)常進(jìn)行連接但沒(méi)有指定為外鍵的列上建立索引,而不經(jīng)常連接的列則由優(yōu)化器自動(dòng)生成索引;(2)在頻繁進(jìn)行排序或分組的列上建立索引;(3)在條件表達(dá)式中經(jīng)常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引.如“性別”列上只有“男”、“女”兩種取值,若建立索引不但不會(huì)提高查詢效率,反而會(huì)大大降低更新速度;(4)選擇長(zhǎng)度較短的列建立索引.因?yàn)樵谳^短列上建立索引,緩存中能放置更多的索引頁(yè),可以減少I/O操作,提高查詢速度;(5)若一個(gè)關(guān)系的更新頻率很高,則該關(guān)系上建立的索引數(shù)不宜太多。因?yàn)楦玛P(guān)系時(shí),必須對(duì)關(guān)系上的索引做相應(yīng)的修改;(6)如果待排序的列有多個(gè),可以在這些列上建立復(fù)合索引。2使用索引方式的并集在嵌套查詢中,大型表的順序存取對(duì)查詢效率可能產(chǎn)生致命的影響。如一個(gè)嵌套3層的查詢,如果每層查詢都產(chǎn)生1000行數(shù)據(jù)。則整個(gè)查詢就要查詢10億行數(shù)據(jù)。避免這種情況的主要方法就是對(duì)連接的列建立索引,按索引路徑完成連接運(yùn)算,從而大大降低連接運(yùn)算的執(zhí)行代價(jià)。如:books表和bookcategory表要進(jìn)行連接,就要在“圖書(shū)類編號(hào)”這個(gè)列上建立索引。還可以使用并集來(lái)避免順序存取。盡管在所有的檢索列上都有索引,但某些形式的WHERE子句強(qiáng)迫優(yōu)化器使用順序存取。如下列語(yǔ)句:SELECT*FROMbooksWHERE(圖書(shū)編號(hào)>1101AND圖書(shū)編號(hào)<1150)OR價(jià)格=30雖然在“圖書(shū)編號(hào)”和“價(jià)格”列上都建有索引,但優(yōu)化器對(duì)該語(yǔ)句的處理還是使用順序存取路徑掃描整個(gè)表,因?yàn)檫@個(gè)語(yǔ)句要檢索的數(shù)據(jù)行是分離的行的集合,因此應(yīng)改成以下多條SELECT查詢語(yǔ)句的并集形式,強(qiáng)迫優(yōu)化器對(duì)books表使用索引路徑處理查詢。SELECT*FROMbooksWHERE(圖書(shū)編號(hào)>1101AND圖書(shū)編號(hào)<1150)UNIONSELECT*FROMbooksWHERE價(jià)格=303避免嵌套查詢句子的層數(shù)化查詢嵌套的層數(shù)每增加一層,查詢效率成幾何級(jí)降低。因此要提高查詢效率,就應(yīng)盡量減少嵌套查詢的層數(shù)。下面通過(guò)具體實(shí)例來(lái)說(shuō)明。例如:查詢學(xué)生成績(jī)信息表Cj(Student_ID,Ks_ID,Studentname,Score)中同時(shí)滿足兩個(gè)分?jǐn)?shù)段[Scorel1,Scorel2]、[Score21,Score22]的學(xué)生記錄,利用嵌套查詢語(yǔ)句表示為:SELECTStudent_IdFROMCjWHERECj.Scroe>=Score11ANDCj.Score<=Scorel2ANDStudent_IdIN(SELECTStudent_IdFROMCjWHERECj.Score>=Score21ANDCj.Score<=Score22);在上面的查詢中,若每層查詢1000行語(yǔ)句,查詢量就達(dá)到了100萬(wàn)行。如果需要對(duì)更多的分?jǐn)?shù)段或?qū)@些分?jǐn)?shù)段的邏輯表達(dá)式進(jìn)行這樣的查詢,查詢效率就更低了。為了減少嵌套查詢語(yǔ)句的層數(shù),我們先看下面的命題。命題有區(qū)間序列:,,…,且兩兩不相交,即=Φ(ij)若映射為,則將區(qū)間與運(yùn)算轉(zhuǎn)化為代數(shù)和運(yùn)算,即ANDAND…AND轉(zhuǎn)化為++…+根據(jù)上面的命題,將分?jǐn)?shù)段{[Score11,Score12],[Score21,Score22]}映射為數(shù)值{1,2},將區(qū)間與運(yùn)算轉(zhuǎn)化為代數(shù)和運(yùn)算。將上面的例子進(jìn)行轉(zhuǎn)換:將學(xué)生成績(jī)表中增加一個(gè)輔助整型字段key,將key字段的值設(shè)置為:UPDATECjSETkey=1WHERECj.Score>=Score11ANDCj.Score<=Score12UPDATECjSETkey=2WHERECj.Score>=Score21ANDCj.Score<=Score22則將原來(lái)的嵌套語(yǔ)句改為:SELECTStudent_IdSUM(DISTINCTkey)FROMCjWHEREkey>0GROUPBYStudent_IdHAVINGSUM(DISTINCTkey)=3可以看出,該語(yǔ)句變得簡(jiǎn)潔且執(zhí)行效率要高。通過(guò)該實(shí)例可知,利用區(qū)間運(yùn)算轉(zhuǎn)換為代數(shù)運(yùn)算,將減少嵌套查詢語(yǔ)句嵌套的層數(shù),從而達(dá)到提高關(guān)系數(shù)據(jù)庫(kù)查詢效率的目的。4sql的生成模塊保證了參數(shù)取得好時(shí),清除了分類和操作創(chuàng)建層面的錯(cuò)誤在SELECT查詢語(yǔ)句中,MATCHES和LIKE關(guān)鍵字支持通配符匹配,技術(shù)上稱為正規(guī)表達(dá)式。但這種匹配特別耗時(shí)。如:SELECT*FROMStudentWHERESnoLIKE‘2002%’,即使在Sno列上建立了索引,優(yōu)化器還是會(huì)采用順序掃描方式處理該SELECT語(yǔ)句。但若把SELECT語(yǔ)句改為:SELECT*FROMStudentWHERESno>‘2002000000’ANDSno<‘2003000000’則優(yōu)化器會(huì)利用索引來(lái)執(zhí)行查詢,顯然會(huì)大大提高查詢速度。另外,還要避免非開(kāi)始子串的查詢。非順序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)上冊(cè)數(shù)學(xué)聽(tīng)評(píng)課記錄 《擲一擲》人教版
- 一年級(jí)上冊(cè)數(shù)學(xué)聽(tīng)評(píng)課記錄-第4單元:第2課時(shí)《一起來(lái)分類》北師大版
- 豬肉攤位員工合同(2篇)
- 魯人版九年級(jí)道德與法治上冊(cè) 3.1 我們共同的精神家園 聽(tīng)課評(píng)課記錄
- 粵教版地理七年級(jí)上冊(cè)5.3《聚落的發(fā)展變化》聽(tīng)課評(píng)課記錄
- 八年級(jí)歷史人教版下冊(cè)聽(tīng)課評(píng)課記錄:第15課 鋼鐵長(zhǎng)城
- 湘教版數(shù)學(xué)七年級(jí)上冊(cè)4.1《幾何圖形》聽(tīng)評(píng)課記錄
- 蘇科版數(shù)學(xué)七年級(jí)下冊(cè)《11.2 不等式的解集》聽(tīng)評(píng)課記錄2
- 2022年新課標(biāo)八年級(jí)上冊(cè)道德與法治《10.2 天下興亡 匹夫有責(zé) 》聽(tīng)課評(píng)課記錄
- 魯教版地理七年級(jí)下冊(cè)第九章《青藏地區(qū)》單元備課聽(tīng)課評(píng)課記錄
- 三年級(jí)上冊(cè)數(shù)學(xué)脫式計(jì)算大全600題及答案
- 計(jì)算機(jī)控制系統(tǒng) 課件 第10章 網(wǎng)絡(luò)化控制系統(tǒng)的分析與設(shè)計(jì)
- 魯教版(五四制)七年級(jí)數(shù)學(xué)上冊(cè)期末考試卷-附帶答案
- 南京大學(xué)儀器分析習(xí)題集
- 空調(diào)維保應(yīng)急預(yù)案
- 小學(xué)六年級(jí)數(shù)學(xué)上冊(cè)解決問(wèn)題專項(xiàng)必考題西師大版
- 2023年高考語(yǔ)文全國(guó)乙卷作文范文及導(dǎo)寫(解讀+素材+范文)課件版
- 模塊建房施工方案
- 多域聯(lián)合作戰(zhàn)
- 定向鉆出入土點(diǎn)平面布置圖(可編輯)
- 美容美發(fā)場(chǎng)所衛(wèi)生規(guī)范
評(píng)論
0/150
提交評(píng)論