黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 淺談Oracle索引提高效率

淺談Oracle索引提高效率

更新時間:2021-03-04 17:53:50 來源:動力節(jié)點 瀏覽1247次

Oracle數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強,適用于各類大、中、小微機環(huán)境。在關(guān)系數(shù)據(jù)庫中,索引是一種單獨的、物理的對數(shù)據(jù)庫表中一列或多列的值進行排序的一種存儲結(jié)構(gòu),它是某個表中一列或若干列值的集合和相應(yīng)的指向表中物理標識這些值的數(shù)據(jù)頁的邏輯指針清單。索引的作用相當于圖書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容,能夠有效幫助Oracle數(shù)據(jù)庫提高效率,Oracle索引提高效率已經(jīng)廣泛應(yīng)用到了Oracle數(shù)據(jù)庫中。

1、特點優(yōu)點:提高效率 主鍵的唯一性驗證代價:需要空間存儲 定期維護重構(gòu)索引:

LTER INDEX  REBUILD 

2、Oracle對索引有兩種訪問模式

索引唯一掃描 (Index Unique Scan)

索引范圍掃描 (Index Range Scan)

3、基礎(chǔ)表的選擇

基礎(chǔ)表(Driving Table)是指被最先訪問的表(通常以全表掃描的方式被訪問)。根據(jù)優(yōu)化器的不同,SQL語句中基礎(chǔ)表的選擇是不一樣的。

如果你使用的是CBO (COST BASED OPTIMIZER),優(yōu)化器會檢查SQL語句中的每個表的物理大小,索引的狀態(tài),然后選用花費最低的執(zhí)行路徑。

如果你用RBO (RULE BASED OPTIMIZER), 并且所有的連接條件都有索引對應(yīng),在這種情況下,基礎(chǔ)表就是FROM 子句中列在最后的那個表。

4、多個平等的索引

當SQL語句的執(zhí)行路徑可以使用分布在多個表上的多個索引時,ORACLE會同時使用多個索引并在運行時對它們的記錄進行合并,檢索出僅對全部索引有效的記錄。

在ORACLE選擇執(zhí)行路徑時,唯一性索引的等級高于非唯一性索引。然而這個規(guī)則只有當WHERE子句中索引列和常量比較才有效。如果索引列和其他表的索引類相比較。這種子句在優(yōu)化器中的等級是非常低的。

如果不同表中兩個相同等級的索引將被引用,F(xiàn)ROM子句中表的順序?qū)Q定哪個會被率先使用。FROM子句中最后的表的索引將有最高的優(yōu)先級。

如果相同表中兩個相同等級的索引將被引用,WHERE子句中最先被引用的索引將有最高的優(yōu)先級。

5、等式比較優(yōu)先于范圍比較DEPTNO上有一個非唯一性索引,EMP_CAT也有一個非唯一性索引。

SELECT ENAME FROM EMPWHERE DEPTNO > 20AND EMP_CAT = 'A'

這里只有EMP_CAT索引被用到,然后所有的記錄將逐條與DEPTNO條件進行比較. 執(zhí)行路徑如下:

TABLE ACCESS BY ROWID ON EMPINDEX RANGE SCAN ON CAT_IDX

即使是唯一性索引,如果做范圍比較,其優(yōu)先級也低于非唯一性索引的等式比較。

6、不明確的索引等級當ORACLE無法判斷索引的等級高低差別,優(yōu)化器將只使用一個索引,它就是在WHERE子句中被列在最前面的。DEPTNO上有一個非唯一性索引,EMP_CAT也有一個非唯一性索引。

SELECT ENAME FROM EMPWHERE DEPTNO > 20AND EMP_CAT > 'A'

這里, ORACLE只用到了DEPT_NO索引. 執(zhí)行路徑如下:

TABLE ACCESS BY ROWID ON EMP

INDEX RANGE SCAN ON DEPT_IDX

7、強制索引失效如果兩個或以上索引具有相同的等級,你可以強制命令ORACLE優(yōu)化器使用其中的一個(通過它,檢索出的記錄數(shù)量少) 。

SELECT ENAMEFROM EMPWHERE EMPNO = 7935AND DEPTNO + 0 = 10 ???/*DEPTNO上的索引將失效*/AND EMP_TYPE || '' = 'A' ?/*EMP_TYPE上的索引將失效*/

8、避免在索引列上使用計算WHERE子句中,如果索引列是函數(shù)的一部分。優(yōu)化器將不使用索引而使用全表掃描。

/*低效SQL*/SELECT * FROM DEPTWHERE SAL * 12 > 25000;

/*高效SQL*/SELECT * FROM DEPTWHERE SAL > 25000/12;

9、自動選擇索引如果表中有兩個以上(包括兩個)索引,其中有一個唯一性索引,而其他是非唯一性索引。在這種情況下,ORACLE將使用唯一性索引而完全忽略非唯一性索引。

SELECT ENAME FROM EMP WHERE EMPNO = 2326AND DEPTNO = 20;

這里,只有EMPNO上的索引是唯一性的,所以EMPNO索引將用來檢索記錄。

SELECT ENAME FROM EMP WHERE EMPNO = 2326AND DEPTNO = 20;

10、避免在索引列上使用NOT通常,我們要避免在索引列上使用NOT,NOT會產(chǎn)生在和在索引列上使用函數(shù)相同的影響。當ORACLE遇到NOT,它就會停止使用索引轉(zhuǎn)而執(zhí)行全表掃描。

/*低效SQL: (這里,不使用索引)*/SELECT * FROM DEPTWHERE NOT DEPT_CODE = 0

/*高效SQL: (這里,使用索引)*/SELECT * FROM DEPTWHERE DEPT_CODE > 0

我們在學(xué)習(xí)如何使用Oracle索引提高Oracle數(shù)據(jù)庫的效率時,有許多需要注意的細節(jié),以避免產(chǎn)生多余的工作量。本站的Oracle教程中,對Oracle索引的各種運用都給出了具體的案例,結(jié)合案例讓我們使用起來能夠更容易理解Oracle索引的使用。

 

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产又黄又爽又猛的免费视频播放 | 欧美一区二区三区高清视频 | 欧美在线免费播放 | 色一把 | 日韩在线二区 | 国产欧美一区二区成人影院 | 成人免费观看在线视频 | 99re国产| 日本天堂在线观看 | 一级小视频 | 羞羞在线 | 久久国产亚洲欧美日韩精品 | 最近中文字幕大全高清视频 | 中文国产成人精品少久久 | 午夜免费视频网站 | 狠狠色丁香婷婷综合尤物 | jizz国产丝袜18老师美女 | 一级a毛片免费观看久久精品 | 鸥美一级黄色片 | 手机看片亚洲 | 色片在线| 不卡视频免费在线观看 | 亚洲欧美日本综合 | 一级毛片免费 | 成年女人免费又黄又爽视频 | 国产成人在线视频播放 | 成人日韩 | 99re视频 | 国产精品免费视频网站 | 依欧美视频 | 欧美日韩国产人成在线观看 | 78m成人视屏| 三级全黄的视频 | 巨尻在线播放 | 成人一级免费视频 | 重口高h 全肉 文调教bl | 日本一本在线 | 色淫影视 | 欧美成人免费观看久久 | 午夜爱爱网站 | 成人手机在线观看 |