Oracle unusable index 與unvisible index

來源:互聯網
上載者:User

標籤:hsi   之間   維護   cells   created   index   str   visible   acl   

可見度

索引的可見度(visibility)指的是該索引是否對CBO最佳化器可見,即CBO最佳化器在產生執行計畫的時候是否考慮該索引,可以看作是索引的一個屬性。如果一個索引可見度屬性為:invisible. 預設情況下CBO最佳化器產生執行計畫的時候,不再考慮該索引,僅此而已。與可見索引一樣,執行DML操作時,資料庫會相應維護索引的資料。但是對於local 索引,我們不能單獨為某個分區 設定不可見屬性,只能對整個索引設定不可見屬性。

  • 設定索引可見度 不可見屬性,可以在建立索引時指定,也可以後期調整。
    -- 建立索引時指定不可見屬性create index index_name on table_name(column_list) invisible;-- 後期調整可見度alter index index_name invisible;alter index index_name visible;
  • 相關參數 optimizer_use_invisible_indexes 此參數可以控制最佳化器產生執行計畫時,是否考慮使用invisible index. 參數值為bool類型,當設定為true時,CBO會考慮使用invisible index. 預設為false. 此參數可以在會話或者系統全域或者執行個體層級進行設定。
    SQL> select isses_modifiable,issys_modifiable,isinstance_modifiable from v$parameter where name=‘optimizer_use_invisible_indexes‘ISSES ISSYS_MOD ISINS----- --------- -----TRUE  IMMEDIATE TRUEalter session set optimizer_use_invisible_indexes=true;alter system set optimizer_use_invisible_indexes=true sid=‘*‘ scope=both;
  • 作用 在進行SQL最佳化時,不明確一個索引的建立或者刪除對系統是否有影響,此時,我們可以先將索引設定為inbisible狀態,然後,進行測試觀察,如果與預期一致,再將索引設定主visible,或者刪除。 不可見索引,是對於我們預期的一種難途徑。
可用性

索引可用性(usable),正常情況下,索引都是可用的。當索引不可用(unusable)時, Oracle 內部會把該索引中繼資料(即建立語句包含的基本資料)與真實物理資料之間的對應關係撕裂,相關資料區塊可被重用。索引段是否已建立 (dba_indexes.segment_created)這一屬性,會變為no(正常情況下,應為yes). unusable索引,想要被重新使用,只有一種方法: rebuild. 當然還可以先drop 再create.

  • 一般情況下,CBO不考慮使用unusable狀態的索引,包含分區表。
  • 當索引不可用時,Oracle 清除索引資料,並且不再維護
  • 本地索引中,可以設定某個分區的索引為unusable。 
  • 相關參數 skip_unusable_indexes
    參數作用 控制對unusable 的非唯一索引,dml操作時是否維護索引資料
    參數值 true | false
      當參數設定為true時(預設),oracle對索引資料的維護及CBO最佳化器都不會考慮該索引。
      當參數設定為false時,DML操作及CBO產生執行計畫時都會考慮該索引。一旦與unusable索引相關的操作都會失敗。會話報錯退出。
note 
如果是唯一索引,DML時,oracle都會去校正索引可用性,如果索引不可用,就不能保證資料唯一性。

Oracle unusable index 與unvisible index

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.