成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle索引使用規則簡介

數據庫 Oracle
索引是使用Oracle數據庫時經常見得到的,下文對Oracle索引使用規則作了詳盡的闡述說明,如果您感興趣的話,不妨一看。

Oracle索引相信大家都比較熟悉了,下面就為您介紹Oracle索引的使用規則,供您參考,希望可以讓您對Oracle索引有更深的認識。

首先,我們要確定數據庫運行在何種優化模式下,相應的參數是:optimizer_mode。可在svrmgrl中運行“show parameter optimizer_mode"來查看。ORACLE V7以來缺省的設置應是"choose",即如果對已分析的表查詢的話選擇CBO,否則選擇RBO。如果該參數設為“rule”,則不論表是否分析過,一概選用RBO,除非在語句中用hint強制。

其次,檢查被索引的列或組合索引的首列是否出現在PL/SQL語句的WHERE子句中,這是“執行計劃”能用到相關索引的必要條件。

第三,看采用了哪種類型的連接方式。ORACLE的共有Sort Merge Join(SMJ)、Hash Join(HJ)和Nested Loop Join(NL)。在兩張表連接,且內表的目標列上建有Oracle索引時,只有Nested Loop才能有效地利用到該索引。SMJ即使相關列上建有索引,最多只能因索引的存在,避免數據排序過程。HJ由于須做HASH運算,索引的存在對數據查詢速度幾乎沒有影響。

第四,看連接順序是否允許使用相關Oracle索引。假設表emp的deptno列上有索引,表dept的列deptno上無索引,WHERE語句有emp.deptno=dept.deptno條件。在做NL連接時,emp做為外表,先被訪問,由于連接機制原因,外表的數據訪問方式是全表掃描,emp.deptno上的索引顯然是用不上,最多在其上做索引全掃描或索引快速全掃描。

第五,是否用到系統數據字典表或視圖。由于系統數據字典表都未被分析過,可能導致極差的“執行計劃”。但是不要擅自對數據字典表做分析,否則可能導致死鎖,或系統性能下降。

第六,Oracle索引列是否函數的參數。如是,索引在查詢時用不上。

第七,是否存在潛在的數據類型轉換。如將字符型數據與數值型數據比較,ORACLE會自動將字符型用to_number()函數進行轉換,從而導致第六種現象的發生。

第八,是否為表和相關的索引搜集足夠的統計數據。對數據經常有增、刪、改的表最好定期對表和索引進行分析,可用SQL語句“analyze table xxxx compute statistics for all indexes;"。ORACLE掌握了充分反映實際的統計數據,才有可能做出正確的選擇。

第九,Oracle索引列的選擇性不高。

我們假設典型情況,有表emp,共有一百萬行數據,但其中的emp.deptno列,數據只有4種不同的值,如10、20、30、40。雖然emp數據行有很多,ORACLE缺省認定表中列的值是在所有數據行均勻分布的,也就是說每種deptno值各有25萬數據行與之對應。假設SQL搜索條件DEPTNO=10,利用deptno列上的索引進行數據搜索效率,往往不比全表掃描的高,ORACLE理所當然對索引“視而不見”,認為該索引的選擇性不高。

但我們考慮另一種情況,如果一百萬數據行實際不是在4種deptno值間平均分配,其中有99萬行對應著值10,5000行對應值20,3000行對應值30,2000行對應值40。在這種數據分布圖案中對除值為10外的其它deptno值搜索時,毫無疑問,如果索引能被應用,那么效率會高出很多。我們可以采用對該索引列進行單獨分析,或用analyze語句對該列建立直方圖,對該列搜集足夠的統計數據,使ORACLE在搜索選擇性較高的值能用上索引。

第十,索引列值是否可為空(NULL)。如果索引列值可以是空值,在SQL語句中那些需要返回NULL值的操作,將不會用到索引,如COUNT(*),而是用全表掃描。這是因為索引中存儲值不能為全空。

第十一,看是否有用到并行查詢(PQO)。并行查詢將不會用到索引。

第十二,看PL/SQL語句中是否有用到bind變量。由于數據庫不知道bind變量具體是什么值,在做非相等連接時,如“<”,“>”,“like”等。ORACLE將引用缺省值,在某些情況下會對執行計劃造成影響

 

 

 

【編輯推薦】

創建Oracle索引的方法

Oracle索引整理的詳細描述

概論Oracle索引創建策略

分析Oracle索引掃描四大類

le索引原理

責任編輯:段燃 來源: 互聯網
相關推薦

2010-04-26 14:24:58

Oracle數據庫索引

2009-11-19 11:00:55

Oracle xmlt

2009-11-18 16:43:59

2011-07-14 10:53:54

TKPROFOracle

2010-10-25 10:55:11

Oracle函數索引

2010-04-21 13:43:31

Oracle聚簇索引

2009-11-16 11:03:44

Oracle INDE

2010-11-15 12:02:24

Oracle進程結構

2010-10-25 15:12:42

Oracle日期函數

2010-10-25 17:28:05

Oracle bita

2010-11-19 16:03:20

Oracle分析表

2010-10-28 10:54:46

oracle對象權限

2009-04-30 09:45:03

Oracle索引限制

2010-10-25 14:47:49

Oracle系統變量函

2010-10-26 11:39:51

Oracle EXPIMP備份

2010-10-25 17:39:24

Oracle單行日期函

2011-04-12 13:27:09

Oracle日期函數

2015-08-21 12:59:38

Oracle數據庫

2010-11-18 13:09:19

Oracle case

2023-10-11 06:50:32

Oracle數據庫系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人手机视频 | 一区二区三区不卡视频 | 91亚洲视频在线 | 亚洲综合国产精品 | 国产日韩一区二区 | jav成人av免费播放 | 国产色片在线 | 欧美日韩亚洲一区 | 久久人人爽人人爽 | 亚洲精品乱码久久久久久按摩观 | 国产成人福利视频 | 日本激情一区二区 | 精品国产一区二区三区久久影院 | 国产精品久久久久无码av | 国产精品久久久久久久免费大片 | 国产99久久精品一区二区永久免费 | 精品粉嫩aⅴ一区二区三区四区 | 蜜桃av鲁一鲁一鲁一鲁 | 免费观看av网站 | 欧州一区 | 国产网站在线播放 | 免费在线精品视频 | 久久久久久久久久久久久久国产 | 久久精品一区二区三区四区 | 久亚州在线播放 | 日韩在线视频网址 | 欧美一区二区三区在线视频 | 国产精品呻吟久久av凹凸 | 久久精品一区二区三区四区 | 亚洲视频国产 | 国产女人与拘做受免费视频 | 亚洲美女网站 | 亚洲成av片人久久久 | 四虎影| 中文字幕在线一区 | 日韩久久精品视频 | 欧美一区久久 | 欧美极品一区二区 | 国产一区二区三区www | 国产午夜视频 | 久草免费在线 |