阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle移动表对索引的影响

182次阅读
没有评论

共计 3455 个字符,预计需要花费 9 分钟才能阅读完成。

这里主要测试移动表从一个表空间到另一个表空间或者在同同一个表空间做表移动操作对索引的影响。测试中表明:表的移动(move)会直接导致该表中的索引失效,通过重建索引,重新让索引恢复有效可用的状态。以下是简单的测试过程。

— 创建测试表:

– 查看表结构:

linuxidc@PROD>desc mytest

 Name                                      Null?    Type

 —————————————– ——– —————————-

 NAME                                              VARCHAR2(6)

 CREATED                                            DATE
 

– 添加字段:

linuxidc@PROD>alter table mytest add id number(2);

Table altered.

 

– 查看表结构:

linuxidc@PROD>desc mytest

 Name                                      Null?    Type

 —————————————– ——– —————————-

 NAME                                              VARCHAR2(6)

 CREATED                                            DATE

 ID                                                NUMBER(2)
 

— 创建索引:

linuxidc@PROD>create index ind_mytest on mytest(id);

Index created.

# 索引添加成功。

 

– 查看表结构:

linuxidc@PROD>desc mytest

 Name                                      Null?    Type

 —————————————– ——– —————————-

 NAME                                              VARCHAR2(6)

 CREATED                                            DATE

 ID                                                NUMBER(2)

 

– 查看索引:

linuxidc@PROD>select index_name,table_name,tablespace_name,status

  2  from user_indexes; 

INDEX_NAME      TABLE_NAME      TABLESPACE_NAME STATUS

————— ————— ————— ——–

PK_COL1_COL2    T_IOT          MYSPACE        VALID

IDX_T4          T4              USERS          VALID

IDX_T3          T3              USERS          VALID

IND_MYTEST      MYTEST          USERS          VALID

 

— 查看表 mytest 所在的空间:

linuxidc@PROD>select table_name,tablespace_name

  2  from user_tables

  3  where table_name =’MYTEST’;

TABLE_NAME                    TABLESPACE_NAME

—————————— ——————————

MYTEST                        MYSPACE
 

— 把表移动到另外一个表空间:

linuxidc@PROD>alter table mytest move tablespace myspace;

Table altered.

#mytest 表已经移动。

 

— 此时查看表 mytest 中的索引状态:

linuxidc@PROD>select index_name,table_name,tablespace_name,status

  2  from user_indexes;

INDEX_NAME      TABLE_NAME      TABLESPACE_NAME STATUS

————— ————— ————— ——–

PK_COL1_COL2    T_IOT          MYSPACE        VALID

IDX_T4          T4              USERS          VALID

IDX_T3          T3              USERS          VALID

IND_MYTEST      MYTEST          USERS          UNUSABLE

# 表 mytest 中的索引已经失效。

 

— 重建索引:

linuxidc@PROD>alter index ind_mytest rebuild;

Index altered.

# 索引已经重建。

— 再次查看索引的信息:

linuxidc@PROD>select index_name,table_name,tablespace_name,status

  2  from user_indexes;

INDEX_NAME      TABLE_NAME      TABLESPACE_NAME STATUS

————— ————— ————— ——–

PK_COL1_COL2    T_IOT          MYSPACE        VALID

IDX_T4          T4              USERS          VALID

IDX_T3          T3              USERS          VALID

IND_MYTEST      MYTEST          USERS          VALID

# 索引已经重建,默认情况下索引存放在 users 表空间里。

 

—- 移动索引存放的表空间:

linuxidc@PROD>alter table mytest move tablespace myspace;

Table altered.

linuxidc@PROD>select index_name,table_name,tablespace_name,status

  2  from user_indexes;

INDEX_NAME      TABLE_NAME      TABLESPACE_NAME STATUS

————— ————— ————— ——–

PK_COL1_COL2    T_IOT          MYSPACE        VALID

IDX_T4          T4              USERS          VALID

IDX_T3          T3              USERS          VALID

IND_MYTEST      MYTEST          USERS          UNUSABLE
 

— 重建索引:

linuxidc@PROD>alter index ind_mytest rebuild tablespace myspace;

Index altered.

 

– 再次查看索引的信息:

INDEX_NAME      TABLE_NAME      TABLESPACE_NAME STATUS

————— ————— ————— ——–

PK_COL1_COL2    T_IOT          MYSPACE        VALID

IDX_T4          T4              USERS          VALID

IDX_T3          T3              USERS          VALID

IND_MYTEST      MYTEST          MYSPACE        VALID

# 索引已经重建,并已经修改了存放的表空间。

– 从上面的测试过程中,发现,移动表或者直接移动索引,都会导致该表中的索引或者移动的索引失效,通过重建 rebuild 让索引重新正常可用。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137421.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3455字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中