激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

淺談數據庫的查詢(xún)優(yōu)化方法分析

時(shí)間:2024-09-18 17:44:28 計算機應用畢業(yè)論文 我要投稿
  • 相關(guān)推薦

淺談數據庫的查詢(xún)優(yōu)化方法分析

摘要:本文主要探討了在數據庫的應用中對數據庫查詢(xún)優(yōu)化的一些策略,其中包括基于索引、SQL語(yǔ)句的優(yōu)化的方法,并簡(jiǎn)要對其他一些常用方法做了介紹。 
關(guān)鍵詞:數據庫 查詢(xún)優(yōu)化 查詢(xún) 優(yōu)化 
        0 引言 
        隨著(zhù)計算機應用的深入,計算機技術(shù)的成熟,各種應用軟件的普及,應用數據也隨著(zhù)日常工作而迅速增長(cháng),作為數據倉庫的數據庫的重要性也日益顯著(zhù)。                             
        數據庫系統作為管理信息系統的核心,各種基于數據庫的聯(lián)機事務(wù)處理以及聯(lián)機分析處理正慢慢的轉變成為計算機應用的最為重要的部分,根據以往大量的應用實(shí)例來(lái)看,在數據庫的各種操作中,查詢(xún)操作所占的比重最大,而在查詢(xún)操作中基于SELECT語(yǔ)句在SQL語(yǔ)句中又是代價(jià)最大的語(yǔ)句。如果在使用中采用了優(yōu)秀的查詢(xún)策略,往往可以降低查詢(xún)的時(shí)間,提高查詢(xún)的效率,由此可見(jiàn)查詢(xún)優(yōu)化在數據庫中的重要性。本文就數據庫查詢(xún)優(yōu)化中的策略進(jìn)行介紹及探索。 
        1 基于索引的優(yōu)化 
        數據庫的優(yōu)化方法多種多樣,不同的方法對提高數據庫查詢(xún)效率也不相同。 
        索引作為數據庫中的重要數據結構,它的根本目的就是為了提高查詢(xún)的效率。而優(yōu)化查詢(xún)的重要方法就是建立索引,建立適合關(guān)系數據庫系統的索引,這樣就可以避免表掃描,并減少了因為查詢(xún)而造成的輸入輸出開(kāi)銷(xiāo),有效提高數據庫數據的查詢(xún)速度,優(yōu)化了數據庫性能。然而在創(chuàng )建索引時(shí)也增加了系統時(shí)間和空間的開(kāi)銷(xiāo)。所以創(chuàng )建索引時(shí)應該與實(shí)際查詢(xún)需求相結合,這樣才能實(shí)現真正的優(yōu)化查詢(xún)。 
        1.1 判斷并建立必要的索引 對所要創(chuàng )建的索引進(jìn)行正確的判斷,使所創(chuàng )建的索引對數據庫的工作效率提高有所幫助。為了實(shí)現這一點(diǎn),我們應做到以下要求:在熟記數據庫程序中的相關(guān)SQL語(yǔ)句的前提下,統計出常用且對性能有影響的語(yǔ)句;判斷數據庫系統中哪些表的哪些字段要建立索引。其次,對數據庫中操作頻繁的表,數據流量較大的表,經(jīng)常需要與其他表進(jìn)行連接的表等,要進(jìn)行重       點(diǎn)關(guān)注。這些表上的索引將對SQL語(yǔ)句的性能產(chǎn)生重要的影響。 
        1.2 對索引使用的一些規則 索引的使用在一些大型數據庫系統中會(huì )經(jīng)常使用到,這樣可以有效的提高數據庫性能,使數據庫的訪(fǎng)問(wèn)速度得到提高。但索引的使用要恰倒好處,所以我們在使用索引時(shí)應遵守使用原則:建立索引可以提高數據庫的查詢(xún)速度,但索引過(guò)多,不但不能實(shí)現優(yōu)化查詢(xún),反而會(huì )影響到數據庫的整體性能。索引作為數據庫中實(shí)際存在的對象,每個(gè)索引都要占用一定的物理空間。所以對于索引的建立要考慮到物理空間容量,以及所建立索引的必要性和實(shí)用性。 
        1.3 合理的索引對SQL語(yǔ)句的意義 索引建立之后,還要確保其得到了真正的使用,發(fā)揮了其應有的作用。首先,可以通過(guò)SQL語(yǔ)句查詢(xún)來(lái)確定所建立的索引是否得到了使用,找出沒(méi)有使用到的索引。分析索引建立但沒(méi)有使用的原因,使其真正發(fā)揮作用。其次,索引得到使用以后,是否得到了預期的效果,對數據庫的性能是否實(shí)現了真正意義上的提高,只有合理的索引才能真正提高數據庫的性能。 
        2 優(yōu)化SQL語(yǔ)句 
        在使用索引時(shí)可以有效的提高查詢(xún)速度,但如果SQL語(yǔ)句使用不恰當的話(huà),所建立的索引就不能發(fā)揮其作用。所以我們應該做到不但會(huì )寫(xiě)SQL,還要寫(xiě)出性能優(yōu)良的SQL語(yǔ)句。下面,就如何優(yōu)化引用例子進(jìn)行說(shuō)明。  首先,在進(jìn)行查詢(xún)時(shí),返回的值應該是查詢(xún)所需要的。在查詢(xún)中應該盡量減少對數據庫中的表的訪(fǎng)問(wèn)行數,使查詢(xún)的結果范圍最小,這就意味著(zhù)在查詢(xún)時(shí),不能過(guò)多的使用通配符,如:select*from table1語(yǔ)句,而應該做到最小化查詢(xún)范圍,要查詢(xún)幾行幾列就選擇幾行幾列,如:select col1 from table1;多數情況下,用戶(hù)并不需要查詢(xún)到的所有數據,而只是部分或靠前的數據時(shí),我們也可以通過(guò)SQL語(yǔ)句來(lái)進(jìn)行限制查詢(xún)的結果,如:select top 50 col1 from table1。 
        其次,對于一些特殊的SQL語(yǔ)句,在使用時(shí)應正確選擇。我們用一組例子來(lái)說(shuō)明,如:EXISTS,NOT EXISTS。 
        語(yǔ)句一:select sum(t1.c1) from t1 where((select count(*)from t2 where t2.c2=t1.c2)>0)    
        語(yǔ)句二:select sum(t1.c1) from t1 where exists(select*from t2 where t2.c2=t1.c1) 
        兩個(gè)語(yǔ)句所得到的結果相同,但,語(yǔ)句二的效率要遠高于語(yǔ)句一,因為語(yǔ)句一在查詢(xún)中產(chǎn)生了大量的索引掃描。 
        在對數據庫查詢(xún)時(shí),所使用的語(yǔ)句多種多樣,但選擇恰當的的字句能夠有效的提高查詢(xún)效率。 
        最后,WHERE子句在使用時(shí)應該注意的問(wèn)題。 
        在WHERE子句中可以使用exist 和not exist代替in和not in。應該盡量避免使用in,not in,or 或者having?梢允褂帽礞溄哟 exist。Having可以用where代替,如果無(wú)法代替可以分兩步處理。 
        3 其他優(yōu)化方法 
        數據庫的查詢(xún)優(yōu)化方法不僅僅是索引和SQL語(yǔ)句的優(yōu)化,其他方法的合理使用同樣也能很好的對數據庫查詢(xún)功能起到優(yōu)化作用。我們就來(lái)列舉幾種簡(jiǎn)單實(shí)用的方法。 
        3.1 避免或簡(jiǎn)化排序 應當簡(jiǎn)化或避免對大型表進(jìn)行重復的排序。當能夠利用索引自動(dòng)以適當的次序產(chǎn)生輸出時(shí),優(yōu)化器就避免了排序的步驟。 
        3.2 避免相關(guān)子查詢(xún) 如果在主查詢(xún)和WHERE子句中的查詢(xún)中同時(shí)出現了一個(gè)列的標簽,這樣就會(huì )使主查詢(xún)的列值改變后,子查詢(xún)也必須重新進(jìn)行一次查詢(xún)。因為查詢(xún)的嵌套層次越多,查詢(xún)的效率就會(huì )降低,所以我們應當避免子查詢(xún)。如果無(wú)法避免,就要在查詢(xún)的過(guò)程中過(guò)濾掉盡可能多的。 
        3.3 創(chuàng )建使用臨時(shí)表 在表的一個(gè)子集進(jìn)行排序并創(chuàng )建臨時(shí)表,也能實(shí)現加速查詢(xún)。在一些情況下這樣可以避免多重排序操作。但所創(chuàng )建的臨時(shí)表的行要比主表的行少,其物理順序就是所要求的順序,這樣就減少了輸入和輸出,降低了查詢(xún)的工作量,提高了效率,而且臨時(shí)表的創(chuàng )建并不會(huì )反映主表的修改。 
        3.4 用排序來(lái)取代非順序存取 磁盤(pán)存取臂的來(lái)回移動(dòng)使得非順序磁盤(pán)存取變成了最慢的操作。但是在SQL語(yǔ)句中這個(gè)現象被隱藏了,這樣就使得查詢(xún)中進(jìn)行了大量的非順序頁(yè)查詢(xún),降低了查詢(xún)速度,對于這個(gè)現象還沒(méi)有很好的解決方法,只能依賴(lài)于數據庫的排序能力來(lái)替代非順序的存取4 結論 
        對于數據庫的優(yōu)化,我們要抓住關(guān)鍵問(wèn)題,提出改善查詢(xún)效率,這樣才能真正使數據庫服務(wù)得到根本提高。本文在對數據庫查詢(xún)優(yōu)化的方法上,進(jìn)行了分析,提出了部分見(jiàn)解,有效的提高數據庫查詢(xún)效率。 
參考文獻: 
[1]王珊,孟小峰 《數據庫系統導論(第七版)》 機械工業(yè)出版社.2000年10月 
[2]王磊,王熙寧 《網(wǎng)上考試系統的性能與安全分析》.情報科學(xué).2004年22期. 
[3]Abnhrmx Silbersehaa《數據庫系統概念》.機械工業(yè)出版社2006年10月.            

【淺談數據庫的查詢(xún)優(yōu)化方法分析】相關(guān)文章:

基于Oracle9i數據庫的查詢(xún)優(yōu)化10-03

淺談受力分析的方法10-05

主流空間數據庫引擎技術(shù)分析和優(yōu)化方法研究06-01

淺談小學(xué)語(yǔ)文教學(xué)的優(yōu)化及方法05-24

Oracle數據庫的優(yōu)化08-11

淺談關(guān)于計算機移動(dòng)數據庫的應用分析07-07

淺談德育優(yōu)化管理08-25

淺談現代財務(wù)分析方法07-18

淺談?dòng)肰aR方法分析中國A股市場(chǎng)的風(fēng)險07-25

淺談數控設備常見(jiàn)故障分析及維修方法08-21

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频