Oracle 索引的失效和重建

部分内容转载: http://www.cnblogs.com/zhenxing/p/5167776.html


所有执行的结果是脚本命令集合,可以用来创建索引; 

a)在plsql中使用execute  immediate 'alter table J3_nsrxx NOLOGGING'; 

b)sql窗口中,复制出来可直接执行;

1)查询指定表的索引


    
    
  1. --执行过程中,能输入变量:Owner、Table_Name
  2. SELECT T1.TABLE_NAME,
  3. T1.INDEX_NAME,
  4. T1.INDEX_TYPE,
  5. T1.UNIQUENESS,
  6. T1.TABLE_OWNER,
  7. T1.STATUS,
  8. T1.FUNCIDX_STATUS
  9. FROM ALL_INDEXES T1
  10. WHERE T1.TABLE_OWNER = UPPER( '&Owner')
  11. AND T1.TABLE_NAME = UPPER( '&Table_Name')
  12. ORDER BY T1.STATUS DESC;

2)普通索引失效,主键和唯一性索引除外(为保障数据的规范性)


     
     
  1. --普通索引失效,主键和唯一性索引除外(为保障数据的规范性)
  2. --执行过程中,能输入变量:Owner、Table_Name
  3. SELECT 'ALTER INDEX ' || TABLE_OWNER || '.' || INDEX_NAME || ' UNUSABLE;' UNUSABLE_INDEX
  4. FROM ALL_INDEXES
  5. WHERE TABLE_OWNER = UPPER( '&Owner')
  6. AND TABLE_NAME = UPPER( '&Table_Name')
  7. AND INDEX_TYPE = 'NORMAL'
  8. AND UNIQUENESS <> 'UNIQUE';

3)并行(PARALLEL)重建索引,提升重建速度(在服务器空闲时执行)


       
       
  1. --并行(PARALLEL)重建索引,提升重建速度(在服务器空闲时执行)
  2. --执行过程中,能输入变量:Owner、Table_Name
  3. SELECT 'ALTER INDEX ' || TABLE_OWNER || '.' || INDEX_NAME ||
  4. ' REBUILD PARALLEL;' REBUILD_index
  5. FROM ALL_INDEXES
  6. WHERE TABLE_OWNER = UPPER( '&Owner')
  7. AND TABLE_NAME = UPPER( '&Table_Name')
  8. AND INDEX_TYPE = 'NORMAL'
  9. AND UNIQUENESS <> 'UNIQUE'
  10. AND STATUS = 'UNUSABLE';

4)查询索引的状态和DEGREE并行度


         
         
  1. --查询索引的状态和DEGREE并行度
  2. --执行过程中,能输入变量:Owner、Table_Name
  3. SELECT ROWNUM,
  4. S.INDEX_NAME,
  5. S.INDEX_TYPE,
  6. S.TABLE_OWNER,
  7. S.TABLE_NAME,
  8. S.UNIQUENESS,
  9. S.STATUS,
  10. S.DEGREE,
  11. S.TABLESPACE_NAME
  12. FROM ALL_INDEXES S
  13. WHERE TABLE_OWNER = UPPER( '&Owner')
  14. AND TABLE_NAME = UPPER( '&Table_Name');

5)将索引并行度不是1的还原回1


           
           
  1. --将索引并行度不是1的还原回1
  2. --执行过程中,能输入变量:Owner、Table_Name
  3. SELECT 'ALTER INDEX ' || S.TABLE_OWNER || '.' || S.INDEX_NAME ||
  4. ' NOPARALLEL;'
  5. FROM ALL_INDEXES S
  6. WHERE TABLE_OWNER = UPPER( '&Owner')
  7. AND TABLE_NAME = UPPER( '&Table_Name')
  8. AND S.DEGREE <> 1;








猜你喜欢

转载自blog.csdn.net/yimenglin/article/details/83823664
今日推荐