国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 镇远县| 厦门市| 云和县| 龙岩市| 瑞安市| 全南县| 都安| 昭通市| 海门市| 和龙市| 灯塔市| 乐陵市| 孟津县| 乌拉特后旗| 易门县| 隆德县| 房产| 静海县| 五家渠市| 平塘县| 砀山县| 嵊州市| 石景山区| 轮台县| 松滋市| 屯留县| 利津县| 江口县| 富民县| 安义县| 大渡口区| 托克托县| 富平县| 昌都县| 宜黄县| 武山县| 奉化市| 安乡县| 新乐市| 团风县| 云阳县|