RowMovement 练习

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID                              
------------------------------ ------- ----------                              
DEPT                           TABLE                                           
EMP                            TABLE                                           
BONUS                          TABLE                                           
SALGRADE                       TABLE                                           
T5                             TABLE                                           
T6                             TABLE                                           
SYS_IOT_OVER_51451             TABLE                                           
SALES                          TABLE                                           
CLU1                           CLUSTER                                         
EMP_C1                         TABLE            1                              
DEPT_C1                        TABLE            2                              

TNAME                          TABTYPE  CLUSTERID                              
------------------------------ ------- ----------                              
T2                             TABLE                                           
T3                             TABLE                                           
T4                             TABLE                                           
CHAINED_ROWS                   TABLE                                           
T1                             TABLE                                           
T1_TEMP                        TABLE                                           
EMP1                           TABLE                                           

18 rows selected.

SQL> drop table t1 purge;

Table dropped.

SQL> create table t1 as select * from emp where 0=9;

Table created.

SQL> alter table t1 enable rowmovement;
alter table t1 enable rowmovement
                      *
ERROR at line 1:
ORA-00905: missing keyword


SQL> alter table t1 enable row movement;

Table altered.

SQL> desc tabs
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 TABLE_NAME                                NOT NULL VARCHAR2(30)
 TABLESPACE_NAME                                    VARCHAR2(30)
 CLUSTER_NAME                                       VARCHAR2(30)
 IOT_NAME                                           VARCHAR2(30)
 STATUS                                             VARCHAR2(8)
 PCT_FREE                                           NUMBER
 PCT_USED                                           NUMBER
 INI_TRANS                                          NUMBER
 MAX_TRANS                                          NUMBER
 INITIAL_EXTENT                                     NUMBER
 NEXT_EXTENT                                        NUMBER
 MIN_EXTENTS                                        NUMBER
 MAX_EXTENTS                                        NUMBER
 PCT_INCREASE                                       NUMBER
 FREELISTS                                          NUMBER
 FREELIST_GROUPS                                    NUMBER
 LOGGING                                            VARCHAR2(3)
 BACKED_UP                                          VARCHAR2(1)
 NUM_ROWS                                           NUMBER
 BLOCKS                                             NUMBER
 EMPTY_BLOCKS                                       NUMBER
 AVG_SPACE                                          NUMBER
 CHAIN_CNT                                          NUMBER
 AVG_ROW_LEN                                        NUMBER
 AVG_SPACE_FREELIST_BLOCKS                          NUMBER
 NUM_FREELIST_BLOCKS                                NUMBER
 DEGREE                                             VARCHAR2(10)
 INSTANCES                                          VARCHAR2(10)
 CACHE                                              VARCHAR2(5)
 TABLE_LOCK                                         VARCHAR2(8)
 SAMPLE_SIZE                                        NUMBER
 LAST_ANALYZED                                      DATE
 PARTITIONED                                        VARCHAR2(3)
 IOT_TYPE                                           VARCHAR2(12)
 TEMPORARY                                          VARCHAR2(1)
 SECONDARY                                          VARCHAR2(1)
 NESTED                                             VARCHAR2(3)
 BUFFER_POOL                                        VARCHAR2(7)
 ROW_MOVEMENT                                       VARCHAR2(8)
 GLOBAL_STATS                                       VARCHAR2(3)
 USER_STATS                                         VARCHAR2(3)
 DURATION                                           VARCHAR2(15)
 SKIP_CORRUPT                                       VARCHAR2(8)
 MONITORING                                         VARCHAR2(3)
 CLUSTER_OWNER                                      VARCHAR2(30)
 DEPENDENCIES                                       VARCHAR2(8)
 COMPRESSION                                        VARCHAR2(8)
 DROPPED                                            VARCHAR2(3)

SQL> select table_name,ROW_MOVEMENT from tabs;

TABLE_NAME                     ROW_MOVE                                        
------------------------------ --------                                        
DEPT                           DISABLED                                        
EMP                            DISABLED                                        
BONUS                          DISABLED                                        
SALGRADE                       DISABLED                                        
T5                             DISABLED                                        
T6                             DISABLED                                        
SYS_IOT_OVER_51451             DISABLED                                        
DEPT_C1                        DISABLED                                        
EMP_C1                         DISABLED                                        
T2                             DISABLED                                        
T4                             DISABLED                                        

TABLE_NAME                     ROW_MOVE                                        
------------------------------ --------                                        
CHAINED_ROWS                   DISABLED                                        
T1_TEMP                        DISABLED                                        
EMP1                           ENABLED                                         
T1                             ENABLED                                         
SALES                          DISABLED                                        
T3                             DISABLED                                        

17 rows selected.

SQL> insert into t1 select * from emp;

14 rows created.

SQL> insert into t1 select * from t1;

14 rows created.

SQL> /

28 rows created.

SQL> /

56 rows created.

SQL> /

112 rows created.

SQL> /

224 rows created.

SQL> commit;

Commit complete.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        170                                                          
       117        108                                                          
       120        170                                                          

SQL> alter table t1 shrink space;

Table altered.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        170                                                          
       117        190                                                          
       118         88                                                          

SQL> alter table t1 shrink space;

Table altered.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        170                                                          
       117        190                                                          
       118         88                                                          

SQL> delete t1 where empno=7900;

32 rows deleted.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        158                                                          
       117        176                                                          
       118         82                                                          

SQL> alter table t1 shrink space;

Table altered.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        158                                                          
       117        176                                                          
       118         82                                                          

SQL> delete t1 where empno=7902;

32 rows deleted.

SQL> alter table t1 shrink space;                -------压缩空间

Table altered.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        146                                                          
       117        163                                                          
       118         75                                                          

SQL> delete t1 where empno=7839;

32 rows deleted.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        134                                                          
       117        149                                                          
       118         69                                                          

SQL> alter table t1 shrink space;

Table altered.

SQL> select dbms_rowid.rowid_block_number(rowid) block#,count(*) from t1 group by dbms_rowid.rowid_block_number(rowid) order by 1;

    BLOCK#   COUNT(*)                                                          
---------- ----------                                                          
       116        187                                                          
       117        165                                                          

SQL> create index k1 on t1(empno);

Index created.

SQL> select inedx_name,status from user_indexes;
select inedx_name,status from user_indexes
       *
ERROR at line 1:
ORA-00904: "INEDX_NAME": invalid identifier


SQL> select index_name,status from user_indexes;

INDEX_NAME                     STATUS                                          
------------------------------ --------                                        
PK_DEPT                        VALID                                           
PK_EMP                         VALID                                           
SALES_PK                       VALID                                           
IDX_CLU1                       VALID                                           
K1                             VALID                                           

SQL> alter table t1 move tablespace users;

Table altered.

SQL> select index_name,status from user_indexes;

INDEX_NAME                     STATUS                                          
------------------------------ --------                                        
PK_DEPT                        VALID                                           
PK_EMP                         VALID                                           
SALES_PK                       VALID                                           
IDX_CLU1                       VALID                                           
K1                             UNUSABLE                                        

SQL> alter index k1 rebuild;                       -----重构索引

Index altered.

SQL> select index_name,status from user_indexes;

INDEX_NAME                     STATUS                                          
------------------------------ --------                                        
PK_DEPT                        VALID                                           
PK_EMP                         VALID                                           
SALES_PK                       VALID                                           
IDX_CLU1                       VALID                                           
K1                             VALID                                           

SQL> alter table t1 shrinl space;
alter table t1 shrinl space
               *
ERROR at line 1:
ORA-01735: invalid ALTER TABLE option


SQL> alter table t1 shrink space;

Table altered.

SQL> select index_name,status from user_indexes;

INDEX_NAME                     STATUS                                          
------------------------------ --------                                        
PK_DEPT                        VALID                                           
PK_EMP                         VALID                                           
SALES_PK                       VALID                                           
IDX_CLU1                       VALID                                           
K1                             VALID                        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值