国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

ORA-01502 state unusable錯誤成因和解決方法(二)

2024-07-21 02:09:43
字體:
供稿:網(wǎng)友

sql> create table t(a number);

table created.

現(xiàn)在,我們建立一個唯一索引來看看:
sql> create unique index idx_t on t(a);

index created.

sql> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='t';         

no rows selected

sql> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='idx_t';

index_name                     index_type                  tablespace_name                table_type  status
------------------------------ --------------------------- ------------------------------ ----------- --------
idx_t                          normal                      data_dynamic                   table       valid

sql> insert into t values(1);

1 row created.

sql> commit;

commit complete.

將索引手工修改為unusable狀態(tài)(模擬發(fā)生索引失效的情況):
sql> alter index idx_t unusable;

index altered.

sql>  select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='idx_t';

index_name                     index_type                  tablespace_name                table_type  status
------------------------------ --------------------------- ------------------------------ ----------- --------
idx_t                          normal                      data_dynamic                   table       unusable

我們看到這是,已經(jīng)不能正常往表中插入數(shù)據(jù):
sql> insert into t values(2);
insert into t values(2)
*
error at line 1:
ora-01502: index 'misc.idx_t' or partition of such index is in unusable state

首先,我們通過重建索引(rebuild index)的方法來解決問題:
sql> alter index idx_t rebuild;

index altered.

sql> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='idx_t';

index_name                     index_type                  tablespace_name                table_type  status
------------------------------ --------------------------- ------------------------------ ----------- --------
idx_t                          normal                      data_dynamic                   table       valid

sql> insert into t values(2);

1 row created.

sql> commit;

commit complete.

sql>

現(xiàn)在我們再次模擬索引失效(unusable狀態(tài)):
sql> alter index idx_t unusable;

index altered.

sql> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='idx_t';

index_name                     index_type                  tablespace_name                table_type  status
------------------------------ --------------------------- ------------------------------ ----------- --------
idx_t                          normal                      data_dynamic                   table       unusable

sql> insert into t values(3);
insert into t values(3)
*
error at line 1:
ora-01502: index 'misc.idx_t' or partition of such index is in unusable state

然后,看看是否可以通過設(shè)置參數(shù)skip_unusable_indexes=true來解決問題:
sql> alter session set skip_unusable_indexes=true;

session altered.

sql> insert into t values(3);
insert into t values(3)
*
error at line 1:
ora-01502: index 'misc.idx_t' or partition of such index is in unusable state

sql> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='idx_t';

index_name                     index_type                  tablespace_name                table_type  status
------------------------------ --------------------------- ------------------------------ ----------- --------
idx_t                          normal                      data_dynamic                   table       unusable

sql> alter index idx_t rebuild;

index altered.

sql> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='idx_t';

index_name                     index_type                  tablespace_name                table_type  status
------------------------------ --------------------------- ------------------------------ ----------- --------
idx_t                          normal                      data_dynamic                   table       valid

sql> insert into t values(3);

1 row created.

sql> commit;

commit complete.

sql>
很顯然,對于unique index,通過簡單的設(shè)置參數(shù)是不能解決問題的,要解決unique index 失效的問題,只能通過重建索引來實(shí)現(xiàn)。

 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 图们市| 吴桥县| 阿瓦提县| 湘阴县| 繁昌县| 北安市| 陵川县| 民县| 滨州市| 南皮县| 胶南市| 栖霞市| 泊头市| 通海县| 林州市| 古蔺县| 旬阳县| 金湖县| 苍南县| 桂东县| 浮梁县| 句容市| 十堰市| 横峰县| 凤城市| 枣强县| 璧山县| 习水县| 黄山市| 南宁市| 宜阳县| 东乡族自治县| 嘉祥县| 永年县| 蓝田县| 邮箱| 桑日县| 海口市| 南康市| 元氏县| 万年县|