下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、文章來源 畢業(yè)論文網(wǎng) 淺談數(shù)據(jù)庫的查詢優(yōu)化方法分析文章來源 畢業(yè)論文網(wǎng) 摘要:本文主要探討了在數(shù)據(jù)庫的應(yīng)用中對數(shù)據(jù)庫查詢優(yōu)化的一些策略,其中包括基于索引、sql語句的優(yōu)化的方法,并簡要對其他一些常用方法做了介紹。 關(guān)鍵詞:數(shù)據(jù)庫 查詢優(yōu)化 查詢 優(yōu)化 0 引言 隨著計(jì)算機(jī)應(yīng)用的深入,計(jì)算機(jī)技術(shù)的成熟,各種應(yīng)用軟件的普及,應(yīng)用數(shù)據(jù)也
2、隨著日常工作而迅速增長,作為數(shù)據(jù)倉庫的數(shù)據(jù)庫的重要性也日益顯著。 數(shù)據(jù)庫系統(tǒng)作為管理信息系統(tǒng)的核心,各種基于數(shù)據(jù)庫的聯(lián)機(jī)事務(wù)處理以及聯(lián)機(jī)分析處理正慢慢的轉(zhuǎn)變
3、成為計(jì)算機(jī)應(yīng)用的最為重要的部分,根據(jù)以往大量的應(yīng)用實(shí)例來看,在數(shù)據(jù)庫的各種操作中,查詢操作所占的比重最大,而在查詢操作中基于select語句在sql語句中又是代價(jià)最大的語句。如果在使用中采用了優(yōu)秀的查詢策略,往往可以降低查詢的時(shí)間,提高查詢的效率,由此可見查詢優(yōu)化在數(shù)據(jù)庫中的重要性。本文就數(shù)據(jù)庫查詢優(yōu)化中的策略進(jìn)行介紹及探索。 1 基于索引的優(yōu)化 數(shù)據(jù)庫的優(yōu)化方法多種多樣
4、,不同的方法對提高數(shù)據(jù)庫查詢效率也不相同。 索引作為數(shù)據(jù)庫中的重要數(shù)據(jù)結(jié)構(gòu),它的根本目的就是為了提高查詢的效率。而優(yōu)化查詢的重要方法就是建立索引,建立適合關(guān)系數(shù)據(jù)庫系統(tǒng)的索引,這樣就可以避免表掃描,并減少了因?yàn)椴樵兌斐傻妮斎胼敵鲩_銷,有效提高數(shù)據(jù)庫數(shù)據(jù)的查詢速度,優(yōu)化了數(shù)據(jù)庫性能。然而在創(chuàng)建索引時(shí)也增加了系統(tǒng)時(shí)間和空間的開銷。所以創(chuàng)建索引時(shí)應(yīng)該與實(shí)際查詢需求相結(jié)合,這樣才能實(shí)現(xiàn)真正的優(yōu)化查詢。 &nbs
5、p; 1.1 判斷并建立必要的索引 對所要?jiǎng)?chuàng)建的索引進(jìn)行正確的判斷,使所創(chuàng)建的索引對數(shù)據(jù)庫的工作效率提高有所幫助。為了實(shí)現(xiàn)這一點(diǎn),我們應(yīng)做到以下要求:在熟記數(shù)據(jù)庫程序中的相關(guān)sql語句的前提下,統(tǒng)計(jì)出常用且對性能有影響的語句;判斷數(shù)據(jù)庫系統(tǒng)中哪些表的哪些字段要建立索引。其次,對數(shù)據(jù)庫中操作頻繁的表,數(shù)據(jù)流量較大的表,經(jīng)常需要與其他表進(jìn)行連接的表等,要進(jìn)行重 點(diǎn)關(guān)注。這些表上的索引將對sql語句的性能產(chǎn)生重要的影響。 &nbs
6、p; 1.2 對索引使用的一些規(guī)則 索引的使用在一些大型數(shù)據(jù)庫系統(tǒng)中會(huì)經(jīng)常使用到,這樣可以有效的提高數(shù)據(jù)庫性能,使數(shù)據(jù)庫的訪問速度得到提高。但索引的使用要恰倒好處,所以我們在使用索引時(shí)應(yīng)遵守使用原則:建立索引可以提高數(shù)據(jù)庫的查詢速度,但索引過多,不但不能實(shí)現(xiàn)優(yōu)化查詢,反而會(huì)影響到數(shù)據(jù)庫的整體性能。索引作為數(shù)據(jù)庫中實(shí)際存在的對象,每個(gè)索引都要占用一定的物理空間。所以對于索引的建立要考慮到物理空間容量,以及所建立索引的必要性和實(shí)用性。 1
7、.3 合理的索引對sql語句的意義 索引建立之后,還要確保其得到了真正的使用,發(fā)揮了其應(yīng)有的作用。首先,可以通過sql語句查詢來確定所建立的索引是否得到了使用,找出沒有使用到的索引。分析索引建立但沒有使用的原因,使其真正發(fā)揮作用。其次,索引得到使用以后,是否得到了預(yù)期的效果,對數(shù)據(jù)庫的性能是否實(shí)現(xiàn)了真正意義上的提高,只有合理的索引才能真正提高數(shù)據(jù)庫的性能。 2 優(yōu)化sql語句  
8、; 在使用索引時(shí)可以有效的提高查詢速度,但如果sql語句使用不恰當(dāng)?shù)脑?,所建立的索引就不能發(fā)揮其作用。所以我們應(yīng)該做到不但會(huì)寫sql,還要寫出性能優(yōu)良的sql語句。下面,就如何優(yōu)化引用例子進(jìn)行說明。 首先,在進(jìn)行查詢時(shí),返回的值應(yīng)該是查詢所需要的。在查詢中應(yīng)該盡量減少對數(shù)據(jù)庫中的表的訪問行數(shù),使查詢的結(jié)果范圍最小,這就意味著在查詢時(shí),不能過多的使用通配符,如:select*from table1語句,而應(yīng)該做到最小化查詢范圍,要查詢幾行幾列就選擇幾行幾列,如:select col1 from table1;多數(shù)
9、情況下,用戶并不需要查詢到的所有數(shù)據(jù),而只是部分或靠前的數(shù)據(jù)時(shí),我們也可以通過sql語句來進(jìn)行限制查詢的結(jié)果,如:select top 50 col1 from table1。 其次,對于一些特殊的sql語句,在使用時(shí)應(yīng)正確選擇。我們用一組例子來說明,如:exists,not exists。 語句一:select 
10、;sum(t1.c1) from t1 where(select count(*)from t2 where t2.c2=t1.c2)0) 語句二:select sum(t1.c1) from t1 where exists(select*from t2 where t2.c2=t1.c1)
11、 兩個(gè)語句所得到的結(jié)果相同,但,語句二的效率要遠(yuǎn)高于語句一,因?yàn)檎Z句一在查詢中產(chǎn)生了大量的索引掃描。 在對數(shù)據(jù)庫查詢時(shí),所使用的語句多種多樣,但選擇恰當(dāng)?shù)牡淖志淠軌蛴行У奶岣卟樵冃省?nbsp; 最后,where子句在使用時(shí)應(yīng)該注意的問題。  
12、; 在where子句中可以使用exist 和not exist代替in和not in。應(yīng)該盡量避免使用in,not in,or 或者h(yuǎn)aving。可以使用表鏈接代替 exist。having可以用where代替,如果無法代替可以分兩步處理。 3 其他優(yōu)化方法 數(shù)據(jù)庫的
13、查詢優(yōu)化方法不僅僅是索引和sql語句的優(yōu)化,其他方法的合理使用同樣也能很好的對數(shù)據(jù)庫查詢功能起到優(yōu)化作用。我們就來列舉幾種簡單實(shí)用的方法。 3.1 避免或簡化排序 應(yīng)當(dāng)簡化或避免對大型表進(jìn)行重復(fù)的排序。當(dāng)能夠利用索引自動(dòng)以適當(dāng)?shù)拇涡虍a(chǎn)生輸出時(shí),優(yōu)化器就避免了排序的步驟。 3.2 避免相關(guān)子查詢 如果在主查詢和where子句中的查詢中同時(shí)出現(xiàn)了
14、一個(gè)列的標(biāo)簽,這樣就會(huì)使主查詢的列值改變后,子查詢也必須重新進(jìn)行一次查詢。因?yàn)椴樵兊那短讓哟卧蕉?,查詢的效率就?huì)降低,所以我們應(yīng)當(dāng)避免子查詢。如果無法避免,就要在查詢的過程中過濾掉盡可能多的。 3.3 創(chuàng)建使用臨時(shí)表 在表的一個(gè)子集進(jìn)行排序并創(chuàng)建臨時(shí)表,也能實(shí)現(xiàn)加速查詢。在一些情況下這樣可以避免多重排序操作。但所創(chuàng)建的臨時(shí)表的行要比主表的行少,其物理順序就是所要求的順序,這樣就減少了輸入和輸出,降低了查詢的工作量,提高了效率,而且臨時(shí)表的創(chuàng)建并不會(huì)反映主表的修改。&n
15、bsp; 3.4 用排序來取代非順序存取 磁盤存取臂的來回移動(dòng)使得非順序磁盤存取變成了最慢的操作。但是在sql語句中這個(gè)現(xiàn)象被隱藏了,這樣就使得查詢中進(jìn)行了大量的非順序頁查詢,降低了查詢速度,對于這個(gè)現(xiàn)象還沒有很好的解決方法,只能依賴于數(shù)據(jù)庫的排序能力來替代非順序的存取4 結(jié)論 對于數(shù)據(jù)庫的優(yōu)化,我們要抓住關(guān)鍵問題,提出改善查詢效率,這樣才能真正使數(shù)據(jù)庫服務(wù)得到根本提高。本文在對數(shù)據(jù)庫查詢優(yōu)化的方法上,進(jìn)行了分析,提出了部分見解,有效的提高數(shù)據(jù)庫查詢效率。&nbs
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購合同中的采購計(jì)劃編制技巧3篇
- 采購戰(zhàn)略合同的綠色發(fā)展戰(zhàn)略機(jī)遇3篇
- 采購合同與銷售合同的合同終止3篇
- 采購合同的終止方式3篇
- 采購合同中的家具篇3篇
- 采購合同條款的合同案例分析3篇
- 采購框架協(xié)議合同模板3篇
- 采購合同模板樣式技巧3篇
- 采購合同評審流程的培訓(xùn)課程3篇
- 采購合同風(fēng)險(xiǎn)防范與研究分享3篇
- 我不是藥神電影賞析
- 2024年四川遂寧開祺資產(chǎn)管理有限公司招聘筆試參考題庫含答案解析
- 有機(jī)肥料及微生物肥料行業(yè)的環(huán)境影響與生態(tài)保護(hù)
- 提高檢驗(yàn)標(biāo)本合格率的品管圈課件
- 幼兒園教育的德育培養(yǎng)
- 順豐SHL在線測評題庫
- 貴州省黔東南州2022-2023學(xué)年八年級上學(xué)期期末文化水平測試數(shù)學(xué)試卷(含答案)
- 快消品招商方案
- 河南省洛陽市2022-2023學(xué)年高一上學(xué)期期末語文試卷(含答案)
- 切割機(jī)安全培訓(xùn)
- 充電樁采購安裝售后服務(wù)方案
評論
0/150
提交評論