Oracle 索引index那些事

來源:互聯網
上載者:User

表修改很少,可以多建立索引,特別是read only的表
表修改很多,需要著重考慮

15%的資料以下篩選適合建立索引

索引不包含null,所以對條件為is Not null是合適建立索引的,優不優良另說

最大尺寸的index應該在表的一半以下

可以使用並行建立index,加快建索引的速度

建立索引可以使用nologging  --提速的好主意,再結合parallel,但是產生歸檔量沒有測試,大家可以測試一下啊

unusable indexes 
--最佳化器不會考慮,dml也不會維護這些索引,適合大批量資料載入的時候,載入完成後在將索引開啟
當將索引置為unusable時,index segment會被刪除
skip_unusable_indexes參數決定了dml是否維護被置為unusable的index

invisible indexes 
這個索引也會被optimizer忽略,但是dml語句會維護這個索引,單個的分區索引是不能置為invisible模式的。
使用情境:
1 測試刪除一個索引產生的影響
2 建立臨時索引為一定的操作而不影響現有的程式
3 在已經擁有索引的列上建立其他索引  --可能是新特性,一個索引上可以建立多個索引

understand when to create multiple indexes on the same set of columns    -p745
可以在多個列上建立不同類型的索引,但同一時刻只能一條索引是visible的,其他索引必須是invisible的。

--分區索引可以在普通表上建立,這個是最佳化的一個好思路,不能光看準分區表  ****

重建和coalesce索引 
很明顯coalesce功能少,影響小
coalesce會將相同height的leaf block進行合并,所以不單純是回收不使用的葉塊,但不會縮減index 的height

建立特別大索引的時候應該單獨建立一個temporary tablespace,建立索引肯定會涉及到排序操作的,當然把session的sort_area_size調大一些也有好處。

create index idx_aa on aa(id) online;  --指定online不能使用parallel,不能存在ddl操作,但允許基表上進行dml操作。

基於函數的索引會有timestamp,當進行基於時間點的恢複的時候,如果timestamp比系統的恢復點新,可能這個索引就失效了,可以使用analyze

index ... validate sructure語句進行確認,沒有實驗進行支撐,觀點略顯蒼白。

 

creating a key-compressed index

--會使用首碼尾碼值進行壓縮,適合非唯一值比較多的引導列情況

--節省空間的,提高效能
壓縮索引適合非唯一的列的情況,也是首碼和尾碼進行壓縮

create index hr.emp_ename  on emp(ename) tablespace users compress 1;

alter index hr.emp_ename rebuild nocompress;

unuseable index  -- -所謂建立即不可用,不分配segment

create index  id_a on a (id unusable);

invisible index    --同上,但分配段,dml操作也會被資料庫維護(不用這些索引的時候還是少建立為宜),可以在session層級使用optimizer_use_invisible_indexes為true使用索引
--上面兩個索引都會被最佳化器忽略

create index emp_id on emp(id) invisible;

unusable 索引被最佳化器忽略,並且在基表進行dml操作時不會得到維護

alter index id1 rename to id2;

alter index id1 monitoring usage;
alter index id1 nomonitoring usage;

dba_ind_expressions  --可以查看基於函數的索引的運算式

alter index ... validate structure;  --之後可以查詢index_stats獲得關於index的狀態。

user_object_usage;  --獲得index是否在使用。

Oracle收集統計資訊導致索引被監控

由Oracle索引來理解ArcSDE索引

Oracle索引技術之如何建立最佳索引

Oracle索引列NULL值引發執行計畫該表的測試樣本

Oracle索引 主鍵影響查詢速度

Oracle索引掃描

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.