国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

關(guān)系數(shù)據(jù)庫查詢優(yōu)化淺析

2018-11-13 12:03趙新華
新一代 2018年13期
關(guān)鍵詞:關(guān)系數(shù)據(jù)庫

趙新華

摘 要:SQL查詢已經(jīng)廣泛應(yīng)用于數(shù)據(jù)庫系統(tǒng)中,如何通過優(yōu)化查詢進(jìn)而提高數(shù)據(jù)庫的性能,本文從查詢語句的使用,視圖、存儲過程以及索引的應(yīng)用幾方面進(jìn)行了分析,并提出了優(yōu)化方案。

關(guān)鍵詞:查詢優(yōu)化;SQL;關(guān)系數(shù)據(jù)庫

隨著數(shù)據(jù)庫技術(shù)的廣泛應(yīng)用,我們發(fā)現(xiàn)數(shù)據(jù)庫應(yīng)用中大量的工作是要進(jìn)行數(shù)據(jù)查詢和檢索處理?;陉P(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)查詢語言SQL在數(shù)據(jù)庫系統(tǒng)中被廣泛使用,而我們在使用SQL查詢數(shù)據(jù)時往往太注重結(jié)果而忽略了不同的查詢方法導(dǎo)致效率的降低。數(shù)據(jù)查詢效率和檢索處理速度已經(jīng)成為衡量數(shù)據(jù)庫性能的一個重要指標(biāo)。為了優(yōu)化數(shù)據(jù)庫的性能,除了改進(jìn)數(shù)據(jù)庫的硬件條件、軟件環(huán)境和規(guī)范化設(shè)計外,還應(yīng)該進(jìn)行數(shù)據(jù)查詢的優(yōu)化。我認(rèn)為可以從以下幾方面進(jìn)行查詢優(yōu)化。

一、索引優(yōu)化

索引的概念:索引是對數(shù)據(jù)庫表中一個或多個字段的值進(jìn)行排序的一種數(shù)據(jù)結(jié)構(gòu),使用索引可以快速訪問數(shù)據(jù)庫表中的特定數(shù)據(jù)。數(shù)據(jù)庫索引就好比一本書的目錄,能加快數(shù)據(jù)庫的查詢速度,索引又分為聚集索引和非聚集索引,聚集索引是按照數(shù)據(jù)存放的物理位置為順序,而非聚集索引則不是。聚集索引能提高多行檢索的速度,非聚集索引對單行檢索很快。

索引的使用原則:(1)索引要建立在使用率高的字段上,這樣可以提高索引的使用率。(2)建立復(fù)合索引時要注意復(fù)合索引的順序要按照使用的頻度來確定。(3)在經(jīng)常需要排序和分組的字段上建立索引,以加快排序和分組的時間。(4)一般不在數(shù)據(jù)值較少的字段上建立索引。因為如果數(shù)據(jù)值少的話有沒有索引對查詢效率影響并不明顯。(5)對于經(jīng)常存取修改的字段盡量不建立索引,因為這樣會帶來較大的維護(hù)工作。

合理建立索引能提高檢索速度,但并不是索引越多越好,過多的索引會降低數(shù)據(jù)庫系統(tǒng)的整體性能,因為索引是需要系統(tǒng)維護(hù)它,并且會產(chǎn)生索引碎片,所以我們建立索引時要綜合考慮既要達(dá)到快速檢索的目的,又不能降低系統(tǒng)整體性能。

二、SQL語句優(yōu)化

(一)操作符的優(yōu)化。(1)避免使用<>、NOT這樣的操作符,這種操作符使系統(tǒng)無法使用索引而只能直接搜索表中的數(shù)據(jù)。例如:select pid from tb_product where pprice<>4000,優(yōu)化器將無法通過索引來確定將要命中的行數(shù),因此需要搜索該表的所有行。而我們改為:select pid from tb_product where pprice>4000 or pprice<4000,就可以使用索引查詢,檢索速度得到了提高。(2)盡量減少LIKE操作符的使用,LIKE操作符應(yīng)用通配符查詢可以實現(xiàn)幾乎是任意的查詢。但在字符串的比較中,有時大量字符的逐個比較,也會大大降低查找效率。

(二)select子句的優(yōu)化。盡量減少select*的使用,用具體的列名代替*,過濾掉多余的列。使用top,distinct關(guān)鍵字減少多余重復(fù)的行,distinct在查詢一個字段或者很少字段的情況下使用,會避免重復(fù)數(shù)據(jù)的出現(xiàn),給查詢帶來優(yōu)化效果,但是查詢字段很多的情況下使用,則會大大降低查詢效率,所以當(dāng)查詢字段多的時候要慎用。

(三)where子句的優(yōu)化。合理設(shè)置WHERE條件的先后順序。把能過濾更多數(shù)據(jù)的條件放在前面,過濾少的放后面,便可提高檢索速度。

例如:select pname from tb_product where pquality=A and ptype =電腦產(chǎn)品

當(dāng)產(chǎn)品質(zhì)量大多為A時,我們就可以把語句改為:select pname from tb_product where ptype=電腦產(chǎn)品and pquality=A

這樣通過ptype=電腦產(chǎn)品這個條件過濾掉的數(shù)據(jù)行要比pquality=A過濾掉的數(shù)據(jù)行多,從而提高了查詢速度。

三、避免相關(guān)子查詢

子查詢的效率一般沒有連接查詢高,應(yīng)該盡量用連接查詢來代替子查詢。除非必要,一般不要寫有子查詢的語句,如果必須用子查詢的時候,在子查詢里寫盡量多條件,使得子查詢返回的行數(shù)盡量少。

四、建立視圖

視圖可簡化用戶操作數(shù)據(jù)的方式,使用戶能著重于所感興趣的特定數(shù)據(jù)。如果該視圖數(shù)據(jù)規(guī)模小于基本表,則基于視圖的查詢比原查詢的速度會快得多。

五、使用存儲過程

把常用的查詢語句編寫成存儲過程,以此來取代應(yīng)用程序中的查詢語句,可以很大程度的增加SQL語句執(zhí)行效率。存儲過程是一個可重用的代碼模塊,存儲過程創(chuàng)建后,可以在程序中任意調(diào)用,減少了重新編譯的時間。

編寫性能優(yōu)化的SQL語句是提高數(shù)據(jù)庫系統(tǒng)的重要因素,隨著數(shù)據(jù)庫管理系統(tǒng)中數(shù)據(jù)量的增大,如何提高查詢速度與效率也是計算機(jī)軟件開發(fā)的一個時代要求。實現(xiàn)優(yōu)化查詢的方法很多,在使用中,要根據(jù)具體情況權(quán)衡利弊,使數(shù)據(jù)庫查詢性能最優(yōu)。

參考文獻(xiàn):

[1]黃崇本,韋存存.SQL SERVER數(shù)據(jù)庫技術(shù)與應(yīng)用 大連理工大學(xué)出版社,2014

[2]祁鵬年,數(shù)據(jù)庫查詢優(yōu)化淺析,計算機(jī)光盤軟件與應(yīng)用,2014

[3]張燕琴,基于SQL Server數(shù)據(jù)庫的查詢優(yōu)化,軟件導(dǎo)刊,2012

[4]商惠華,關(guān)系數(shù)據(jù)庫SQL查詢語句的優(yōu)化,2014.

猜你喜歡
關(guān)系數(shù)據(jù)庫
關(guān)系數(shù)據(jù)庫在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
關(guān)系數(shù)據(jù)庫技術(shù)在計算機(jī)網(wǎng)絡(luò)設(shè)計中的應(yīng)用
基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索
一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索方法
美姑县| 景东| 安多县| 正蓝旗| 乌兰察布市| 黑水县| 舞钢市| 灯塔市| 榆林市| 东莞市| 佳木斯市| 军事| 区。| 赤水市| 河间市| 昌图县| 松溪县| 隆回县| 弥渡县| 平乡县| 通山县| 宁明县| 阳山县| 黄石市| 东海县| 磐石市| 布尔津县| 深泽县| 眉山市| 吉安市| 灵丘县| 驻马店市| 靖州| 泰安市| 河津市| 永德县| 凌海市| 望谟县| 邢台市| 庆安县| 登封市|