亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

小議在Oracle中索引的使用

2024-08-29 13:49:44
字體:
來源:轉載
供稿:網友
  索引是由Oracle維護的可選結構,為數據提供快速的訪問。準確地判定在什么地方需要使用索引是困難的,使用索引有利于調節檢索速度。 當建立一個索引時,必須指定用于跟蹤的表名以及一個或多個表列。一旦建立了索引,在用戶表中建立、更改和刪除數據庫時, Oracle就自動地維護索引。創建索引時,下列準則將幫助用戶做出決定:  1) 索引應該在SQL語句的"where"或"and"部分涉及的表列(也稱謂詞)被建立。假如  personnel表的"firstname"表列作為查詢結果顯示,而不是作為謂詞部分,則不論其值是什么,該表列不會被索引?! ?)用戶應該索引具有一定范圍的表列,索引時有一個大致的原則:假如表中列的值占該表中行的2 0 %以內,這個表列就可以作為候選索引表列。假設一個表有36 000行且表中一個表列的值平均分布(大約每12000行),那么該表列不適合于一個索引。然而,假如同一個表中的其他表列中列值的行在1 0 0 0~1 5 0 0之間(占3 %~4 % ),則該表列可用作索引?! ?)假如在S Q L語句謂詞中多個表列被一起連續引用,則應該考慮將這些表列一起放在一個索引內, O r a c l e將維護單個表列的索引(建立在單一表列上)或復合索引(建立在多個表列上)。復合索引稱并置索引?!?STRONG> 1 主要害字的約束  關系數據庫理論指出,在表中能唯一標識表的每個數據行的一個或多個表列是對象的主要害字。由于數據字典中定義的主要害字能確保表中數據行之間的唯一性,因此,在O r a c l e 8 i數據庫中建立表索引要害字有助于應用調節。另外,這也減輕了開發者為了實現唯一性檢查,而需要各自編程的要求?! √崾臼褂弥饕ψ炙饕龡l目比不使用主要害字索引檢索得快?! 〖僭O表p e r s o n把它的i d表列作為主要害字,用下列代碼設置約束:alter table person add constraint person_pk PRimary key (id) using index storage (initial 1m next 1m pctincrease 0) tablespace prd_indexes ;  處理下列S Q L語句時:select last_name ,first_name ,salary from person where id = 289 ;  在查找一個已確定的“ i d”表列值時, O r a c l e將直接找到p e r s o n _ p k。假如其未找到正確的索引條目,O r a c l e知道該行不存在。主要害字索引具有下列兩個獨特之處:  1.1因為索引是唯一的, 所以O r a c l e知道只有一個條目具有設定值。假如查找到了所期望的條目,則立即終止查找?! ?.2一旦碰到一個大于設定值的條目,索引的順序搜索可被終止;  2 ORDER BY中用索引  ORDER BY 子句只在兩種嚴格的條件下使用索引.   ORDER BY中所有的列必須包含在相同的索引中并保持在索引中的排列順序.   ORDER BY中所有的列必須定義為非空.   WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列.   例如:   表DEPT包含以下列: DEPT_CODE PK
NOT NULL DEPT_DESC NOT NULL DEPT_TYPE NULL   非唯一性的索引(DEPT_TYPE)   低效: (索引不被使用) SELECT DEPT_CODE FROM DEPT ORDER BY DEPT_TYPE EXPLAIN PLAN: SORT ORDER BY TABLE access FULL   高效: (使用索引) SELECT DEPT_CODE FROM DEPT WHERE DEPT_TYPE > 0 EXPLAIN PLAN: TABLE ACCESS BY ROWID ON EMP INDEX RANGE SCAN ON DEPT_IDX   3 避免改變索引列的類型.   當比較不同數據類型的數據時, ORACLE自動對列進行簡單的類型轉換. 假設 EMPNO是一個數值類型的索引列. SELECT … FROM EMP WHERE EMPNO = ‘123'   實際上,經過ORACLE類型轉換, 語句轉化為: SELECT … FROM EMP WHERE EMPNO = TO_NUMBER(‘123')   幸運的是,類型轉換沒有發生在索引列上,索引的用途沒有被改變.   現在,假設EMP_TYPE是一個字符類型的索引列. SELECT … FROM EMP
WHERE EMP_TYPE = 123   這個語句被ORACLE轉換為: SELECT … FROM EMP WHERE TO_NUMBER(EMP_TYPE)=123   因為內部發生的類型轉換, 這個索引將不會被用到! 為了避免ORACLE對你的SQL進行隱式的類型轉換, 最好把類型轉換用顯式表現出來. 注重當字符和數值比較時, ORACLE會優先轉換數值類型到字符類型.   4 需要當心的WHERE子句   某些SELECT 語句中的WHERE子句不使用索引. 這里有一些例子.   在下面的例子里, ‘!=' 將不使用索引. 記住, 索引只能告訴你什么存在于表中, 而不能告訴你什么不存在于表中.   不使用索引: SELECT ACCOUNT_NAME FROM TRANSACTION WHERE AMOUNT !=0;   使用索引: SELECT ACCOUNT_NAME FROM TRANSACTION WHERE AMOUNT >0;   下面的例子中, ‘'是字符連接函數. 就象其他函數那樣, 停用了索引. 不使用索引: SELECT ACCOUNT_NAME,AMOUNT FROM TRANSACTION WHERE ACCOUNT_NAMEACCOUNT_TYPE='AMEXA';   使用索引: SELECT ACCOUNT_NAME,AMOUNT FROM TRANSACTION WHERE ACCOUNT_NAME = ‘AMEX' AND ACCOUNT_TYPE=' A';   下面的例子中, ‘+'是數學函數. 就象其他數學函數那樣, 停用了索引.   不使用索引: SELECT ACCOUNT_NAME, AMOUNT FROM TRANSACTION WHERE AMOUNT + 3000 >5000;   使用索引: SELECT ACCOUNT_NAME, AMOUNT FROM TRANSACTION WHERE AMOUNT > 2000 ;   下面的例子中,相同的索引列不能互相比較,這將會啟用全表掃描.   不使用索引: SELECT ACCOUNT_NAME, AMOUNT FROM TRANSACTION WHERE ACCOUNT_NAME = NVL(:ACC_NAME,ACCOUNT_NAME);   使用索引: SELECT ACCOUNT_NAME, AMOUNT FROM TRANSACTION WHERE ACCOUNT_NAME LIKE NVL(:ACC_NAME,'%');   假如一定要對使用函數的列啟用索引, ORACLE新的功能: 基于函數的索引(Function-Based Index) 也許是一個較好的  方案. CREATE INDEX EMP_I ON EMP (UPPER(ename)); /*建立基于函數的索引*/ SELECT * FROM emp WHERE UPPER(ename) = ‘BLACKSNAIL'; /*將使用索引*/   5 怎樣監控無用的索引  Oracle 9i以上,可以監控索引的使用情況,假如一段時間內沒有使用的索引,一般就是無用的索引  語法為:  開始監控:alter index index_name monitoring usage;  檢查使用狀態:select * from v$object_usage;  停止監控:alter index index_name nomonitoring usage;  當然,假如想監控整個用戶下的索引,可以采用如下的腳本:set heading offset echo offset feedback offset pages 10000spool start_index_monitor.sqlSELECT 'alter index 'owner'.'index_name' monitoring usage;'FROM dba_indexesWHERE owner = USER; spool off set heading onset echo onset feedback on------------------------------------------------set heading offset echo offset feedback offset pages 10000spool stop_index_monitor.sqlSELECT 'alter index 'owner'.'index_name' nomonitoring usage;'FROM dba_indexesWHERE owner = USER; spool off set heading onset echo onset feedback on


上一篇:Oracle分析函數學習筆記3

下一篇:Oracle CHAR,VARCHAR,VARCHAR2類型的區別與使用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产色综合天天综合网| 亚洲日本欧美日韩高观看| 日韩中文在线观看| www.日本久久久久com.| 亚洲男人天堂网| 国产有码一区二区| 亚洲aⅴ男人的天堂在线观看| 亚洲欧洲视频在线| 日韩久久精品成人| 精品国产拍在线观看| 亚洲电影在线观看| 亚洲女人初尝黑人巨大| 日韩中文字在线| 日韩黄色高清视频| 国产一区二区香蕉| 日韩av不卡在线| 国产亚洲人成网站在线观看| 中文字幕日韩在线视频| 国产噜噜噜噜噜久久久久久久久| 色多多国产成人永久免费网站| 国产精品自产拍高潮在线观看| 国产美女久久久| 欧美最猛性xxxxx亚洲精品| 在线观看视频亚洲| 日韩高清av一区二区三区| 亚洲欧洲在线看| 91精品视频在线看| 国产精品高潮在线| 亚洲国产精品一区二区三区| 成人xxxxx| 97久久精品视频| 欧美成人手机在线| 日韩国产精品一区| 亚洲国产另类 国产精品国产免费| 九九九热精品免费视频观看网站| 亚洲综合色av| 国模精品一区二区三区色天香| www.日本久久久久com.| 26uuu另类亚洲欧美日本一| 亚洲欧美激情一区| 91久久精品美女高潮| 91精品久久久久久久久久| 欧美一区二区三区艳史| 国外成人在线直播| 亚洲跨种族黑人xxx| 日韩视频亚洲视频| 久久999免费视频| 久久国产精品电影| 国产精品高潮在线| 一区二区av在线| 欧美日韩亚洲一区二区| 亚洲天堂第二页| 国产精品人人做人人爽| 操日韩av在线电影| 国产精品久久久久9999| 98午夜经典影视| 欧美日产国产成人免费图片| 亚洲天堂网在线观看| 91亚洲精品久久久久久久久久久久| 91av在线免费观看| 国产精品久久久久久久久久免费| 一区二区三区黄色| 亚洲自拍欧美另类| 国产精品自产拍在线观看中文| 国产欧美在线视频| 国产精品白嫩美女在线观看| 国产综合久久久久| 这里精品视频免费| 一区二区三区四区在线观看视频| 欧美一性一乱一交一视频| 2019中文在线观看| 久久偷看各类女兵18女厕嘘嘘| 国产精品成人免费视频| 日韩精品久久久久| 精品亚洲永久免费精品| 日韩欧美成人区| 精品女厕一区二区三区| 中文字幕欧美精品在线| 成人性生交大片免费看小说| 精品爽片免费看久久| 亚洲区免费影片| 久久精品国产欧美亚洲人人爽| 91久久久久久久久久久久久| 亚洲丁香久久久| 国产欧美一区二区三区久久| 欧美日韩ab片| 一夜七次郎国产精品亚洲| 欧美成人免费va影院高清| 日韩电影中文 亚洲精品乱码| 68精品国产免费久久久久久婷婷| 国产偷国产偷亚洲清高网站| 4444欧美成人kkkk| 色偷偷91综合久久噜噜| 日本欧美一级片| 亚洲免费电影一区| 亚洲国语精品自产拍在线观看| 日韩高清a**址| 一区二区三区高清国产| 91精品在线一区| 久久色精品视频| 欧美在线激情网| 精品国产精品自拍| 欧美性受xxxx黑人猛交| 欧美成人免费大片| 久久夜色撩人精品| 国产精品久久久久久亚洲影视| 成人精品久久av网站| 欧美激情精品久久久久久黑人| 久久成人精品电影| 久久精品国产99国产精品澳门| 91精品免费视频| 国产亚洲精品久久久久动| 久久久久久久激情视频| 久久久久久久网站| 亚洲欧美成人在线| 久久久精品国产亚洲| 尤物99国产成人精品视频| 美女福利精品视频| 亚洲xxx自由成熟| 日韩大胆人体377p| 日韩中文字幕在线视频播放| 亚洲国产日韩欧美在线99| 亚洲视频专区在线| 川上优av一区二区线观看| 国产精品r级在线| 国产视频亚洲视频| 久久露脸国产精品| 伊人精品在线观看| 琪琪第一精品导航| 亚洲欧美中文日韩在线v日本| 久久久久久伊人| 大胆欧美人体视频| 亚洲全黄一级网站| 欧美激情视频在线观看| 久久久免费高清电视剧观看| 欧美精品性视频| 欧美一级大片在线观看| 欧美午夜精品久久久久久人妖| 日韩精品中文字幕视频在线| 1769国产精品| 色偷偷噜噜噜亚洲男人| 欧美激情视频一区二区三区不卡| 亚洲精品日韩丝袜精品| 韩曰欧美视频免费观看| 亚洲另类图片色| 中文字幕精品一区二区精品| 亚洲色图25p| 久久福利视频导航| 亚洲第一区中文字幕| 一区二区在线视频播放| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品视频最多的网站| 久久天天躁狠狠躁夜夜躁2014| 国产成人91久久精品| 丝袜亚洲另类欧美重口| 日韩av在线一区二区| 国自在线精品视频| 91精品91久久久久久| 国产成人亚洲综合91精品| 中文字幕日韩精品有码视频| 国产精品久久网| 国产精品久久久久9999| 欧美精品videosex极品1| 久久影视电视剧凤归四时歌|