索引的相關(guān)知識(shí) ②.索引的操作
?
??? OK,接著昨天來學(xué)習(xí)索引。今天主要就是介紹一些索引的操作問題。沒什么可多說的,都是基礎(chǔ)操作。
?
三、更改索引
?
??? 可以使用ALTER INDEX語句進(jìn)行的操作有
?
??? ● 重建或合并現(xiàn)存索引
??? ● 回收未使用的空間或分配新盤區(qū)
??? ● 指定/取消并行執(zhí)行和更改并行度
??? ● 更改存儲(chǔ)參數(shù)或物理屬性
??? ● 指定LOGGING或NOLOGGING
??? ● 啟動(dòng)或停用鍵壓縮
??? ● 將索引標(biāo)記成不可用
??? ● 開始或停止對(duì)索引使用的監(jiān)視
?
??? 注:不能更改索引的列結(jié)構(gòu)
?
1、更改索引存儲(chǔ)特性
?
??? ALTER INDEX emp_ename
??? STORAGE (PCTINCREASE 50);
?
??? 使用ENABLE子句的USING INDEX子句來修改約束相關(guān)的索引
?
??? ALTER TABLE emp
??? ENABLE PRIMARY KEY SUING INDEX
??? PCTFREE 5;
?
2、重建現(xiàn)存索引
?
??? ALTER INDEX emp_name REBUILD;
??? ALTER INDEX emp_name REBUILD ONLINE;
?
??? 注:如果沒有重建索引的空間,可以用合并索引代替,也可以聯(lián)機(jī)。
?
3、監(jiān)視索引使用
?
??? ALTER INDEX index MONITORING USAGE;
??? ALTER INDEX index NOMONITORING USAGE;
?
??? 可查詢視圖 V$OBJECT_USAGE來查詢正在被監(jiān)視的索引。MONITORING列標(biāo)明監(jiān)視是否被激活,USED標(biāo)明是否被使用
?
??? 每次指定MONITORING USAGE時(shí),V$OBJECT_USAGE都會(huì)被針對(duì)指定的索引進(jìn)行重新設(shè)置,以前的使用信息被清除或重新設(shè)置,新的開始時(shí)間被記錄下來。當(dāng)指定NOMONITORING USAGE,而又不執(zhí)行進(jìn)一步的監(jiān)視時(shí),則結(jié)束時(shí)間被記錄下,知道下一次發(fā)布MONITORING USAGE語句之前,該視圖信息均保持不變。
?
?
四、監(jiān)視索引的空間使用
?
??? 如果索引所在鍵值進(jìn)場(chǎng)被INSERT、UPDATE、DELETE,那么隨著時(shí)間的推移會(huì)失去空間效率,此時(shí)需要查詢空間使用效率。
?
??? ANALYZE INDEX index_name CALIDATE STRUCTURE;
??? SELECT PCT_USED FROM INDEX_STATS WHERE NAME = 'index_name';
?
??? 注:可以重復(fù)檢查、刪除、重建某索引,來檢測(cè)其空間使用的平均效率。
當(dāng)某一索引的空間使用效率降到其平均值之下,就可以用過刪除并重建索引來精簡(jiǎn)空間。
?
?
五、刪除索引
?
??? 刪除索引一般是因?yàn)橐韵略颍?/span>
?
??? ● 不再需要該索引
??? ● 該索引沒有達(dá)到預(yù)期的性能改善
??? ● 沒有用到該索引
??? ● 索引已無效,必須在重建前刪除
??? ● 所以已太碎,必須在重建前刪除
?
??? 可以使用以下語句來刪除索引:
?
??? DROP INDEX emp_ename;
?
??? 注:不能刪除與UNIQUE KEY或PRIMARY KEY相關(guān)的索引,必須刪除整個(gè)約束才可以刪除該索引。
?
?
六、查看索引信息
?
??? DBA|ALL|USER_INDEXES:所有表上的所有索引,其中的某些列包含DBMS_STATS包或ANALYZE語句產(chǎn)生的統(tǒng)計(jì)數(shù)據(jù)。
??? DBA|ALL|USER_IND_COLUMNS:描述表上的索引的列,其中的某些列包含DBMS_STATS包或ANALYZE語句產(chǎn)生的統(tǒng)計(jì)數(shù)據(jù)。
??? DBA|ALL|USER_IND_EXPRESSIONS:描述表上的基于函數(shù)的索引表達(dá)式
??? INDEX_STATS:ANALYZE所產(chǎn)生的信息
??? INDEX_HISTOGRAM:ANALYZE所產(chǎn)生的信息
??? V$OBJECT_USAGE:MONITORING USAGE語句所產(chǎn)生的信息
?
?
?
?