![數(shù)據(jù)庫中數(shù)據(jù)查詢的實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/8e8debdc6324977ebc4c3a83f0241ac3/8e8debdc6324977ebc4c3a83f0241ac31.gif)
![數(shù)據(jù)庫中數(shù)據(jù)查詢的實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/8e8debdc6324977ebc4c3a83f0241ac3/8e8debdc6324977ebc4c3a83f0241ac32.gif)
![數(shù)據(jù)庫中數(shù)據(jù)查詢的實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/8e8debdc6324977ebc4c3a83f0241ac3/8e8debdc6324977ebc4c3a83f0241ac33.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫中數(shù)據(jù)查詢的實(shí)現(xiàn)
一、查詢優(yōu)化過程在數(shù)據(jù)庫應(yīng)用程序中,訪問操作是數(shù)據(jù)庫其他操作中最重要的部分。在系統(tǒng)開發(fā)過程中,如果不重視xml搜索策略,則訪問僅在初始用戶中流暢,但隨著數(shù)據(jù)庫表中記錄的累積次數(shù)的增加,系統(tǒng)的生產(chǎn)率降低,這是無法忍受的。因此,恢復(fù)優(yōu)化在很大程度上發(fā)揮著重要作用??茖W(xué)合理地構(gòu)造查詢系統(tǒng),是成功開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)非常重要的環(huán)節(jié)。據(jù)統(tǒng)計(jì)約有90%的性能問題是由于程序員或用戶使用了不恰當(dāng)?shù)牟樵冋Z句造成的,因此SQL語句的質(zhì)量對整個(gè)系統(tǒng)效率有重大關(guān)系。DBMS處理查詢計(jì)劃的過程是:做完查詢語句的詞法、語法檢查之后,將語句提交給DBMS的查詢優(yōu)化器,優(yōu)化器做完代數(shù)優(yōu)化和存取路徑的優(yōu)化之后。由預(yù)編譯模塊對語句進(jìn)行處理并生成查詢規(guī)劃,然后在合適的時(shí)間提交給系統(tǒng)處理執(zhí)行,最后將執(zhí)行結(jié)果返回給用戶。雖然現(xiàn)在的數(shù)據(jù)庫產(chǎn)品在查詢優(yōu)化方面已經(jīng)做得越來越好,但由用戶提交的SQL語句是系統(tǒng)優(yōu)化的基礎(chǔ),因此用戶所寫語句的優(yōu)劣至關(guān)重要。二、查詢優(yōu)化技術(shù)一個(gè)好的查詢表達(dá)式不是基于純粹的理論假設(shè)及謂詞想像出來的,而是在實(shí)際的項(xiàng)目開發(fā)過程中總結(jié)的經(jīng)驗(yàn),本文就通過幾個(gè)常用的查詢優(yōu)化方法,結(jié)合舉例來說明SQL查詢語句優(yōu)化技術(shù)。(一)正確的配置和使用索引是數(shù)據(jù)庫中重要的數(shù)據(jù)結(jié)構(gòu),是優(yōu)化的基礎(chǔ),建立索引的根本目的是提高查詢效率,索引的使用要恰到好處,其使用原則如下:1.索引通常創(chuàng)建連接列表,并使用不經(jīng)常連接的字段則由優(yōu)化器自動(dòng)生成索引;2.排序或排序字段的索引;3.索引的設(shè)置列上建立索引,在不同值少的列上不要建立索引,例如在人事信息表中的“黨員”字段中,只有兩個(gè)不同的邏輯值:.T.和.F.這兩個(gè)值,所以就沒有必要建立索引。例如:兩個(gè)表PEOPLE(編號,姓名,性別……)和WIFE(編號,姓名,性別….)命令SELECTPEOPLE.編號,PEOPLE.姓名,WIFE.編號,WIFE.姓名FROMPEOPLE,WIFEWHEREPEOPLE.編號=WIFE.編號這兩個(gè)表要進(jìn)行鏈接,就要在這兩個(gè)表上以“編號”為字段建立索引。(二)數(shù)據(jù)的兼容性最微妙的查詢問題之一就是在WHERE子句中,對具有不同類型的字段的比較,例如FLOAT與INT,CHAR與VARCHAR,BINARY與VARBINARY是不兼容的,因此要求WHERE子句中表達(dá)式的數(shù)據(jù)類型是兼容的,數(shù)據(jù)類型的不兼容可能使優(yōu)化器無法執(zhí)行一些本來可以進(jìn)行的優(yōu)化操作。例如,對于SQL語句SELECT姓名FROMPEOPLEWHERE月收入>1500由于WHERE子句中,字段月收入是貨幣型字段,而1500是整型數(shù),優(yōu)化器無法對其進(jìn)行優(yōu)化,并且DBMS要耗費(fèi)一定的時(shí)間將整型數(shù)1500轉(zhuǎn)化成貨幣型字段后,才能進(jìn)行優(yōu)化,才能與字段月收入比較。為此,在編程時(shí)可將整型數(shù)1500先轉(zhuǎn)化成貨幣型字段,而不要等到運(yùn)行時(shí)由系統(tǒng)來轉(zhuǎn)化,即語句改為:SELECT姓名FROMPEOPLEWHER月收入≥$1500(三)索引查詢“<>”是排斥性的操作符,而不是包括性的操作符,這會使系統(tǒng)無法使用索引,而只能直接搜索表中的數(shù)據(jù).例如1:SELECT姓名FROMPEOPLEWHERE月收入<>15002:SELECT姓名FROMPEOPLEWHERENOT(月收入=1500)3:SELECT姓名FROMPEOPLEWHERE月收入>1500OR月收入<1500從上面3個(gè)命令我們就可以看出第3個(gè)命令可以使用索引查詢,它的查詢速度是最快的。(四)sql句子的生成例如:SELEC姓名FROMPEOPLEWHERESUBSTR(姓名,1,2)=“李”WHERE子句中對列的任何操作結(jié)果都是在SQL語句運(yùn)行時(shí)逐列計(jì)算得到的,因此它不得不進(jìn)行表搜索,而沒有使用該列上面的索引.因此將SQL語句重寫成下面這樣:SELEC姓名FROMPEOPLEWHERE姓名LIKE“李%”這樣就提高了查詢的速度。(五)“1004”數(shù)據(jù)庫的轉(zhuǎn)化當(dāng)查詢語句中有IN關(guān)鍵詞時(shí),優(yōu)化器采用OR并列條件。例如:SELECT姓名FROMPEOPLEWHERE編號IN(“1002”,”1004”)數(shù)據(jù)庫系統(tǒng)轉(zhuǎn)化為:SELECT姓名FROMPEOPLEWHERE編號=“1002”O(jiān)R編號=“1004”在命令中,當(dāng)可以使用IN或者EXIST時(shí),EXISTS遠(yuǎn)比IN的效率高。在操作中如果把所有的IN操作符子查詢改寫為使用EXISTS的子查詢,這樣效率更高。同理,使用NOTEXIST代替NOTIN會使查詢添加限制條件,由此減少全表掃描次數(shù),從而加快查詢的速度以達(dá)到提高數(shù)據(jù)庫運(yùn)行效率。(六)直接查詢與西方查詢,低對查詢條件使用各種運(yùn)算符,數(shù)據(jù)庫系統(tǒng)在執(zhí)行時(shí),首先計(jì)算運(yùn)算表達(dá)式的值,這樣就影響系統(tǒng)的運(yùn)算速度,例如:1)SELECT*FROMPEOPLEWHERE月收入*12>240002)SELECT*FROMPEOPLEWHERE月收入>2000這兩個(gè)命令的查詢結(jié)果是一樣的,但是第一條命令首先計(jì)算表達(dá)式的值,然后再參與查詢,而第二條命令則是直接查詢,查詢效率明顯比第一條命令高。三、sql句子的編寫要求編寫優(yōu)劣S
溫馨提示
- 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. 人人文庫網(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 競選副社長的申請書
- 2025年度公共廁所設(shè)施設(shè)備采購及安裝服務(wù)合同
- 2025年度新型智能家居設(shè)備采購合同模板
- 2025年P(guān)P片材項(xiàng)目可行性研究報(bào)告
- 中國景泰藍(lán)瓷盆項(xiàng)目投資可行性研究報(bào)告
- 2025年中國餐飲服務(wù)行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報(bào)告
- 2025年度建筑工程勞務(wù)分包與施工監(jiān)理合同
- 2025年度戶外LED廣告屏租賃合同樣本
- 2025年度酒店家具市場調(diào)研與推廣服務(wù)合同
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)建設(shè)投資合同
- 監(jiān)獄安全課件
- 《初三開學(xué)第一課 中考動(dòng)員會 中考沖刺班會》課件
- 護(hù)理干預(yù)在慢性病管理中的作用
- 慢性萎縮性胃炎的護(hù)理查房
- 住院醫(yī)師規(guī)范化培訓(xùn)臨床實(shí)踐能力結(jié)業(yè)??萍寄芸己耍ㄈ漆t(yī)學(xué)科)婦科檢查及分泌物留取
- 加強(qiáng)網(wǎng)絡(luò)空間治理工作的調(diào)研與思考
- 產(chǎn)后修復(fù)學(xué)習(xí)培訓(xùn)課件
- mysql課件第五章數(shù)據(jù)查詢
- 超濾培訓(xùn)課件
- 《冠心病的介入治療》課件
- 中醫(yī)防感冒健康知識講座
評論
0/150
提交評論