oracle語(yǔ)句常見(jiàn)優(yōu)化方法

2017-07-28    分類(lèi): 網(wǎng)站建設(shè)

我們使用oracle數(shù)據(jù)庫(kù)網(wǎng)站制作的過(guò)程當(dāng)中,我們會(huì)發(fā)現(xiàn)注重sql優(yōu)化的人,同樣一個(gè)系統(tǒng),性能快了很多。下面介紹一些常用的sql優(yōu)化機(jī)巧和注重點(diǎn)。

1、表盡量使用別名,字段盡量使用別名.字段名,這樣子,可以減少oracle數(shù)據(jù)庫(kù)解析字段名。而且把不需要的字段名剔除掉,只保留有用的字段名,不要一直使用 select *。

2、關(guān)聯(lián)查詢(xún)時(shí),選擇好主表。oracle解析器對(duì)from 后面的表的解析是從右到左的,所以把數(shù)據(jù)量較小的表作為主表,然后和其他表進(jìn)行關(guān)聯(lián),假如存在三個(gè)以下表,把同時(shí)交叉關(guān)聯(lián)的表作為主表,提高查詢(xún)效率。

3、where 條件后面的的條件解析是從下向上,從后先前解析執(zhí)行的,所以可以把過(guò)濾數(shù)據(jù)量較多的條件放在最后面。

4、多利用表中數(shù)據(jù)行的rowid,rowid代表著表中數(shù)據(jù)存在的物理地址。例如刪除重復(fù)記錄的時(shí)候,可以根據(jù)rowid進(jìn)行刪除。

5、減少對(duì)表的查詢(xún),特別在子查詢(xún)中,能盡量少重復(fù)訪(fǎng)問(wèn)表,就減少。

6、避免使用耗資源的操作,如distinct、Union、minus等這種需要全表查詢(xún)的操作。

7、優(yōu)化分組group by ,對(duì)group by字段要進(jìn)行添加鎖引,如果分組當(dāng)中含有查詢(xún)條件,要改寫(xiě)為where條件進(jìn)行過(guò)濾后,再進(jìn)行分組,而不是直接進(jìn)行 having 條件。

8、用EXISTS替代IN、用NOT EXISTS替代 NOT IN,因?yàn)?not in是低效的,它必須對(duì)該字段的全部數(shù)據(jù)進(jìn)行排序。

9、要合理利用索引字段提高查詢(xún)效率。特別是常用的關(guān)聯(lián)字段可以增加索引,主鍵、或者某些唯一字段。

10、利用>=替代>,因?yàn)?=可以直接定位到=的位置,而大于必須先定位位置,然后再查詢(xún)下一個(gè)數(shù)據(jù)。耗時(shí)不一樣。

11、最后一個(gè)一定要學(xué)會(huì)查看執(zhí)行計(jì)劃,查看相關(guān)查詢(xún)條件是否進(jìn)入索引,找出速。

分享標(biāo)題:oracle語(yǔ)句常見(jiàn)優(yōu)化方法
文章路徑:http://www.muchs.cn/news/75786.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)