日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 优化相关

發(fā)布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 优化相关 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、ORACLE的解析器按照從右到左的順序處理FROM子句中的表名,因此FROM子句中寫在最后的表(基礎表 driving table)將被最先處理. 在FROM子句中包含多個表的情況下,你必須選擇記錄條數(shù)最少的表作為基礎表.

2、ORACLE采用自下而上的順序解析WHERE子句,根據(jù)這個原理,表之間的連接必須寫在其他WHERE條件之前,那些可以過濾掉最大數(shù)量記錄的條件必須寫在WHERE子句的末尾。

3、SELECT子句中避免使用 ‘ * ‘(ORACLE在解析的過程中, 會將'*' 依次轉(zhuǎn)換成所有的列名, 這個工作是通過查詢數(shù)據(jù)字典完成的, 這意味著將耗費更多的時間)。

4、替換效率:in ?--》 exists --》表連接

? ???in的常量列表是優(yōu)化的(例如:aab019 in (‘20’,’30’)),不用exists替換;in列表相當于or

5、用EXISTS替換DISTINCT

?當提交一個包含一對多表信息(比如個人基本信息表和個人參保信息表)的查詢時,避免在SELECT子句中使用DISTINCT.一般可以考慮用EXISTS替換?

?例如:?

低效:?

select distinct ac01.aac001

from ac02,ac01

where ac02.aac001 = ac01.aac001

and ac02.aae140='31'

and ac01.aab001='100100';?

高效:?

select ac01.aac001

from ac01

where exists(select 1 from ac02 where aac001 = ac01.aac001

and aae140='31')

and ac01.aab001='100100';

6、盡量用union all替換union

Union會去掉重復的記錄,會有排序的動作,會浪費時間。因此在沒有重復記錄的情況下或可以允許有重復記錄的話,要盡量采用union all來關聯(lián)。

7、使用DECODE函數(shù)來減少處理時間

使用DECODE函數(shù)可以避免重復掃描相同記錄或重復連接相同的表.?

例如:

(低效)

select count(1) from ac01 where aab001=’100001’and aac008=’1’;?

select count(1) from ac01 where aab001=’100001’and aac008=’2’;

(低效)

Select count(1),aac008

?From ac01

Where aab001=’100001’

??and aac008 in (’1’,’2’)

group by aac008;

(高效)

select count(decode(aac008,’1’,’1’,null)) zz,

count(decode(aac008,’2’,’1’,null))tx

from ac01

where aab001=’100001’;

特別說明:

group by和order by 都會影響性能,編程時盡量避免沒有必要的分組和排序,或者通過其他的有效的編程辦法去替換,比如上面的處理辦法。

8、在使用left?jion時,on和where條件的區(qū)別如下:

1、?on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。

2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經(jīng)沒有l(wèi)eft?join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。

因此左表的條件要放在為where后。

?

轉(zhuǎn)載于:https://www.cnblogs.com/doudingbest/p/7008565.html

總結(jié)

以上是生活随笔為你收集整理的Oracle 优化相关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。