Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1149019
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2010-08-19 11:44:57

数据库LDY用户下,状态非VALID的索引有2种,一种是状态为N/A,一种状态为UNUSABLE。
 
select owner,index_name,table_name,status,partitioned from dba_indexes where owner='LDY' and status not in 'VALID';
OWNER INDEX_NAME                    TABLE_NAME             STATUS     PARTITIONED
----- ----------------------------- ---------------------- ---------- ------------
LDY   T_MON_IND                     T_MON_PART             N/A        YES        
LDY   SKEW_ID_IND                   ZHSY_TEST_SKEW         N/A        YES        
LDY   PAR_PEPO_IND                  PAR_PEPO               N/A        YES        
LDY   INX_PRODUCT_OFFER_INSTANCE_1  PRODUCT_OFFER_INSTANCE UNUSABLE   NO         

状态为UNUSABLE表示索引无效。
状态为N/A表示这个索引是一个分区索引。
可以通过DBA_IND_PARTITIONS数据字典视图查到该索引的分区内容,例如查看索引SKEW_ID_IND:
 
select PARTITION_NAME,STATUS from DBA_IND_PARTITIONS where INDEX_NAME='SKEW_ID_IND';
PARTITION_NAME STATUS
-------------- --------
P123           USABLE
P2             USABLE
P414           USABLE
P501           USABLE
P_OTHER        USABLE
 
 
对于对存在UNUSABLE状态的索引的表进行分析时,会有如下错误,这是由于上面的索引无效导致的。
SQL> begin
  2  dbms_stats.GATHER_TABLE_STATS(
  3  ownname=>'LDY',
  4  tabname=>'PRODUCT_OFFER_INSTANCE',
  5  estimate_percent=>10,
  6  cascade=>true
  7  );
  8  end;
  9  /
begin
*
第 1 行出现错误:
ORA-20000: index "LDY"."INX_PRODUCT_OFFER_INSTANCE_1" 
or partition of such index is in unusable state
ORA-06512: 在 "SYS.DBMS_STATS", line 13056
ORA-06512: 在 "SYS.DBMS_STATS", line 13076
ORA-06512: 在 line 2

rebuild索引之后,再次分析,就没有问题了。
SQL> ALTER INDEX LDY.INX_PRODUCT_OFFER_INSTANCE_1 REBUILD;
索引已更改。
SQL> begin
  2  dbms_stats.GATHER_TABLE_STATS(
  3  ownname=>'LDY',
  4  tabname=>'PRODUCT_OFFER_INSTANCE',
  5  estimate_percent=>10,
  6  cascade=>true
  7  );
  8  end;
  9  /
PL/SQL 过程已成功完成。
阅读(9978) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~