`
lighter
  • 浏览: 495696 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle索引失效问题小结

阅读更多
今天在做刚上线的项目技术支持的时候,忠哥告诉我的如下的做法:

索引失效问题解决方法:
1)导致的原因:
     在SQL*LOADER 加载过程中会维护索引,由于数据量比较大,在SQL*LOADER 加载过程中出现异常情况,导致ORACLE 来不及维护索引,导致索引处于失效状态,影响查询和加载。
     异常情况主要有:在加载过程中杀掉SQL*LOADER 进程,重启,表空间不够等。
2)解决方法:
      重建索引
3)如何重建索引
      a) 查看索引类型
    
   select  t1.index_name,t1.partitioned from Dba_Indexes t1
            where t1.Table_Name=upper('CCB_COGNOS_PROD_BALANCE_AA')

            显示:
 
                  索引名称                         是否分区索引
            CCB_COGNOS_PROD_BALANCE_AA_N1      NO

           b)非分区索引
          重建索引:alter index   cin.CCB_COGNOS_PROD_BALANCE_AA_N1          rebuild Nologging

        c)分区索引
          找出失效的分区索引:
   
select t.Index_Name, t.Partition_Name, t.Tablespace_Name, t.Status
    from Dba_Ind_Partitions t
   where t.Index_Name = 'CMZ_LOCAL_IDX_2'  


   重建所有状态为unusable的索引
重建脚本:  
ALTER INDEX 索引名
             REBUILD PARTITION 分区名
             TABLESPACE 表空间名
             NOLOGGING  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics