基于sql語句的查詢優(yōu)化

基于sql語句的查詢優(yōu)化

ID:33018305

大?。?9.36 KB

頁數(shù):4頁

時(shí)間:2019-02-19

基于sql語句的查詢優(yōu)化_第1頁
基于sql語句的查詢優(yōu)化_第2頁
基于sql語句的查詢優(yōu)化_第3頁
基于sql語句的查詢優(yōu)化_第4頁
資源描述:

《基于sql語句的查詢優(yōu)化》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、基于SQL語句的查詢優(yōu)化姓名:張靜導(dǎo)師:衛(wèi)文學(xué)班級:10級4班研究方向:網(wǎng)絡(luò)地理信息系統(tǒng)摘要:在數(shù)據(jù)庫系統(tǒng)中,我們要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行各種操作.查詢是數(shù)據(jù)庫中最基本、最常用、最復(fù)雜的操作,查詢操作的優(yōu)劣直接影響數(shù)據(jù)庫應(yīng)用程序的性能.在關(guān)系數(shù)據(jù)庫系統(tǒng)中,結(jié)構(gòu)化查詢語言(SQL)的查詢效率一直是人們關(guān)注的焦點(diǎn).本文首先分析了影響SQL性能的原因,然后研究了SQL的可行性,最后給出了兒種SQL優(yōu)化方法.關(guān)鍵字:數(shù)據(jù)庫,查詢,結(jié)構(gòu)化查詢語言,索引Abstract:inthedatabasemanagementsystem(DBMS),wewilldosomeoperationsonthedat

2、awhichinthedatabase?Theinquiryisthemostbasic,commonlyused,themostcomplexoperationinthedatabase.Inquiryoperationfitandunfitqualitydirectinfluencedatabaseapplicationprocedureperformance?SQL(structuredquerylanguage)efficiencyisthekeyfactorintherelationaldatabase,thereasonthataffecttheperformanceofSQ

3、Lisanalyzed,thefeasibilityofSQLoptimizationisstudiedandoptimizationmethodsaregiveninthepaper.Keywords:database,query,structuredquerylanguage,index1引言當(dāng)今世界以數(shù)據(jù)庫技術(shù)為主體的計(jì)算機(jī)應(yīng)用系統(tǒng)已得到廣泛應(yīng)用,了解和掌握結(jié)構(gòu)化查詢語言成為數(shù)據(jù)應(yīng)用中必備的技能.SQL(StructuredQueryLanguage)是結(jié)構(gòu)化查詢語言的縮寫,是用于對存放在計(jì)算機(jī)數(shù)據(jù)庫屮的數(shù)據(jù)進(jìn)行組織、管理和檢索的一種工具,它是目前使用最廣泛的數(shù)據(jù)庫查詢語言.SQL

4、語句的優(yōu)化就是將性能低下的SQL語句轉(zhuǎn)換成達(dá)到同樣目的的性能更好的SQL語句.2影響SQL性能的原因一個(gè)好的查詢計(jì)劃往往可以使程序性能提高數(shù)十倍.查詢計(jì)劃是用戶所提交的SQL語句的集合.DBMS處理查詢計(jì)劃的過程是這樣的:在做完查詢語句的詞法、語法、語義檢查Z后,將語句提交給DBMS的查詢優(yōu)化器,優(yōu)化器做完代數(shù)優(yōu)化和存取路徑優(yōu)化之后,由預(yù)編譯模塊對語句進(jìn)行處理并生成查詢規(guī)劃,然后在合適的時(shí)間提交給系統(tǒng)處理執(zhí)行,最后將執(zhí)行結(jié)果返回給用戶.彫響SQL性能不外乎以下四個(gè)重要原因:(1)在大記錄集上進(jìn)行高成本操作,如使用了引起排序的謂詞等.(2)過多的I/O操作(包括物理T/0與邏輯I/O),最

5、典型的就是未建立恰當(dāng)?shù)乃鞴璉,導(dǎo)致對查詢表進(jìn)行全表掃描.(1)處理了太多的無用記錄,如:在多表連接時(shí)過濾條件位置不當(dāng)而導(dǎo)致在屮間結(jié)果集中包含了太多的無用記錄.(2)未充分利用數(shù)據(jù)庫提供的功能,如查詢的并行化處理等.3SQL優(yōu)化的可行性訪問數(shù)據(jù)庫時(shí),程序要頻繁使用SQL語句対數(shù)庫中的表進(jìn)行查詢操作,以獲取需要的信息?一條復(fù)雜的查詢語句,對相同查詢條件的實(shí)現(xiàn),可以有多種不同的表達(dá)方法,但不同的表達(dá)會使數(shù)據(jù)庫的響應(yīng)速度大相徑庭.對SQL進(jìn)行優(yōu)化可從以下幾個(gè)方面進(jìn)行考慮:(1)SQL語句是對數(shù)據(jù)進(jìn)行操作的重要途徑,應(yīng)用程序的執(zhí)行最終要?dú)w結(jié)為SQL語句的執(zhí)行,而SQL語句消耗了70%?90%的數(shù)據(jù)

6、庫資源,因此SQL語句的效率對數(shù)據(jù)庫系統(tǒng)的性能起到了決定性的作用.(2)SQL語句獨(dú)立于程序設(shè)計(jì)邏輯,對SQL語句進(jìn)行優(yōu)化不會影響程序邏輯,相對于程序源代碼的優(yōu)化,對SQL語句的優(yōu)化在時(shí)間成本和風(fēng)險(xiǎn)上的代價(jià)都很低;(3)SQL語句易學(xué),難精通.SQL語句可以有不同的寫法,不同的寫法在性能上的差異可能很大.同時(shí),SQL語句的性能往往同實(shí)際運(yùn)行系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)、記錄數(shù)量等有關(guān),不存在普遍適用的規(guī)律來提升性能.4SQL優(yōu)化方法4.1合理使用索引索引查詢是數(shù)據(jù)庫川重要的記錄查詢方法,使用索引查詢就是為了提高查詢效率,但是索引的創(chuàng)建和使用必須與實(shí)際應(yīng)用系統(tǒng)的查詢需求相結(jié)合,要恰到好處,否則反而增加

7、了系統(tǒng)時(shí)間和空間的開支?因此必須注意索引的使用,其使用原則如下:⑴如果待排序的列有多個(gè),可以在這些列上建立復(fù)合索引?不過建立復(fù)合素引時(shí)需要進(jìn)行仔細(xì)的分析:正確選擇復(fù)合索引的主列字段;是否幾個(gè)字段都同時(shí)以AND方式出現(xiàn)在WHERE子句中,如杲是則可考慮建立復(fù)合索弓I,否則考慮單索引.(2)在條件表達(dá)式中經(jīng)常用到的、不同值較多的列上建立索引,在不同值較少的列上不要建立索引.(3)在經(jīng)常用作過濾器的字段上創(chuàng)建索引.(4)在經(jīng)常進(jìn)行連接,但

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

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

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