瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Oracle局部索引和全局索引

          Posted on 2012-05-08 15:35 瘋狂 閱讀(1268) 評論(0)  編輯  收藏 所屬分類: database

          表可以按range,hash,list分區(qū),表分區(qū)后,其上的索引和普通表上的索引有所不同,oracle對于分區(qū)表上的索引分為2類,即局部索引和全局索引,下面分別對這2種索引的特點和局限性做個總結。
          局部索引local index
          1.  局部索引一定是分區(qū)索引,分區(qū)鍵等同于表的分區(qū)鍵,分區(qū)數(shù)等同于表的分區(qū)說,一句話,局部索引的分區(qū)機制和表的分區(qū)機制一樣。
          2.  如果局部索引的索引列以分區(qū)鍵開頭,則稱為前綴局部索引。
          3.  如果局部索引的列不是以分區(qū)鍵開頭,或者不包含分區(qū)鍵列,則稱為非前綴索引。
          4.  前綴和非前綴索引都可以支持索引分區(qū)消除,前提是查詢的條件中包含索引分區(qū)鍵。
          5.  局部索引只支持分區(qū)內的唯一性,無法支持表上的唯一性,因此如果要用局部索引去給表做唯一性約束,則約束中必須要包括分區(qū)鍵列。
          6.  局部分區(qū)索引是對單個分區(qū)的,每個分區(qū)索引只指向一個表分區(qū),全局索引則不然,一個分區(qū)索引能指向n個表分區(qū),同時,一個表分區(qū),也可能指向n個索引分區(qū),
          對分區(qū)表中的某個分區(qū)做truncate或者move,shrink等,可能會影響到n個全局索引分區(qū),正因為這點,局部分區(qū)索引具有更高的可用性。
          7.  位圖索引只能為局部分區(qū)索引。
          8.  局部索引多應用于數(shù)據(jù)倉庫環(huán)境中。
          全局索引global index
          1.  全局索引的分區(qū)鍵和分區(qū)數(shù)和表的分區(qū)鍵和分區(qū)數(shù)可能都不相同,表和全局索引的分區(qū)機制不一樣。
          2.  全局索引可以分區(qū),也可以是不分區(qū)索引,全局索引必須是前綴索引,即全局索引的索引列必須是以索引分區(qū)鍵作為其前幾列。
          3.  全局分區(qū)索引的索引條目可能指向若干個分區(qū),因此,對于全局分區(qū)索引,即使只動,截斷一個分區(qū)中的數(shù)據(jù),都需要rebulid若干個分區(qū)甚
          至是整個索引。
          4.  全局索引多應用于oltp系統(tǒng)中。
          5.  全局分區(qū)索引只按范圍或者散列hash分區(qū),hash分區(qū)是10g以后才支持。
          6.  oracle9i以后對分區(qū)表做move或者truncate的時可以用update global indexes語句來同步更新全局分區(qū)索引,用消耗一定資源來換取高度的可用性。
          7.  表用a列作分區(qū),索引用b做局部分區(qū)索引,若where條件中用b來查詢,那么oracle會掃描所有的表和索引的分區(qū),成本會比分區(qū)更高,此時可以考慮用b做全局分區(qū)索引

          分區(qū)索引字典
          DBA_PART_INDEXES 分區(qū)索引的概要統(tǒng)計信息,可以得知每個表上有哪些分區(qū)索引,分區(qū)索引的類新(local/global,)
          Dba_ind_partitions每個分區(qū)索引的分區(qū)級統(tǒng)計信息
          Dba_indexesminusdba_part_indexes,可以得到每個表上有哪些非分區(qū)索引
          索引重建
          Alter index idx_name rebuild partition index_partition_name [online nologging]
          需要對每個分區(qū)索引做rebuild,重建的時候可以選擇online(不會鎖定表),或者nologging建立索引的時候不生成日志,加快速度。
          Alter index rebuild idx_name [online nologging]
          對非分區(qū)索引,只能整個index重建

          本文來自CSDN博客,:http://blog.csdn.net/rabbitbug/archive/2009/09/15/4556638.aspx

          主站蜘蛛池模板: 鹿邑县| 承德县| 南京市| 凤台县| 巴南区| 项城市| 喀喇| 巴彦县| 多伦县| 资源县| 保德县| 临海市| 滁州市| 临泉县| 延津县| 长垣县| 新竹县| 星座| 中超| 徐闻县| 贵溪市| 怀来县| 德钦县| 定日县| 鄢陵县| 准格尔旗| 海林市| 奈曼旗| 惠水县| 九台市| 楚雄市| 巨野县| 林周县| 金平| 阿拉善左旗| 洛浦县| 满洲里市| 东明县| 开封市| 于田县| 榕江县|