国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

oracle數(shù)據(jù)庫(kù)優(yōu)化

2024-08-29 13:44:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  
優(yōu)化就是選擇最有效的方法來(lái)執(zhí)行SQL語(yǔ)句。Oracle優(yōu)化器選擇它認(rèn)為最有效的

方法來(lái)執(zhí)行SQL語(yǔ)句。

 

1).      IS NULL和IS NOT NULL

假如某列存在NULL值,即使對(duì)該列建立索引也不會(huì)提高性能。

2).      為不同的工作編寫不同的SQL語(yǔ)句塊

為完成不同的工作編寫一大塊SQL程序不是好方法。它往往導(dǎo)致每個(gè)任務(wù)的結(jié)果不優(yōu)

化。若要SQL完成不同的工作,一般應(yīng)編寫不同的語(yǔ)句塊比編寫一個(gè)要好。

3).      IN 和EXISTS

Select name from employee where name not in (select name from student);

Select name from employee where not exists (select name from student);

第一句SQL語(yǔ)句的執(zhí)行效率不如第二句。

通過(guò)使用EXISTS,Oracle會(huì)首先檢查主查詢,然后運(yùn)行子查詢直到它找到第一個(gè)匹配

項(xiàng),這就節(jié)省了時(shí)間。Oracle在執(zhí)行IN子查詢時(shí),首先執(zhí)行子查詢,并將獲得的結(jié)果

列表存放在一個(gè)加了索引的臨時(shí)表中。在執(zhí)行子查詢之前,系統(tǒng)先將主查詢掛起,待

子查詢執(zhí)行完畢,存放在臨時(shí)表中以后再執(zhí)行主查詢。這也就是使用EXISTS比使用IN

通常查詢速度快的原因。

4).      NOT 運(yùn)算符

Select * from employee where salary<>1000;

Select * from employee where salary<1000 or salary>1000;

第一句SQL語(yǔ)句的執(zhí)行效率不如第二句,因?yàn)榈诙銼QL語(yǔ)句可以使用索引。

5).      Order By 語(yǔ)句

Order By 語(yǔ)句的執(zhí)行效率很低,因?yàn)樗判颉?yīng)避免在Order By 字句中使用表達(dá)式。

6).      列的連接

select * from employee where namedepartment=’ZYZBIOINFO’;

select * from employee where name=’ZYZ’ and department=’BIOINFO’;

這兩個(gè)查詢,第二句比第一句會(huì)快,因?yàn)閷?duì)于有連接運(yùn)算符’’的查詢,Oracle優(yōu)化器是不

會(huì)使用索引的。

7).      通配符‘%’當(dāng)通配符出現(xiàn)在搜索詞首時(shí),Oracle優(yōu)化器不使用索引

Select * from employee where name like ‘%Z%’;

Select * from employee where name like ‘Z%’;

第二句的執(zhí)行效率會(huì)比第一句快,但查詢結(jié)果集可能會(huì)不同。

8).      應(yīng)盡量避免混合類型的表達(dá)式

假設(shè)字段studentno為VARCHAR2類型

有語(yǔ)句select * from student where studentno>123;

則Oracle會(huì)有一個(gè)隱含的類型轉(zhuǎn)換。隱含的類型轉(zhuǎn)換可能會(huì)使Oracle優(yōu)化器忽略索引。

這時(shí)應(yīng)使用顯式的類型轉(zhuǎn)換select * from student where studentno=to_char(123)。

9).DISTINCT
   DISTINCT總是建立一個(gè)排序,所以查詢速度也慢。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大同市| 霸州市| 汝南县| 天长市| 全州县| 电白县| 银川市| 云和县| 汤阴县| 大余县| 哈尔滨市| 怀集县| 天台县| 朝阳县| 河西区| 台中县| 云浮市| 长治市| 托克逊县| 和田县| 垣曲县| 衡南县| 河曲县| 襄汾县| 南和县| 阿巴嘎旗| 丹东市| 嘉善县| 龙江县| 黄山市| 饶阳县| 鹿泉市| 嘉义市| 岳普湖县| 朝阳市| 平遥县| 阿拉善右旗| 正宁县| 萝北县| 巩义市| 夏邑县|