`
zotao
  • 浏览: 31986 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

alter table move相关知识研究

阅读更多

关于alter table move的一个小实验。
SQL> create table test
2 as
3 select * from dba_objects
4 where 1=0;

Table created.

SQL> select extents ,SEGMENT_NAME from dba_segments where
2 SEGMENT_NAME='TEST' and OWNER='SYS';

EXTENTS SEGMENT_NAME
---------- --------------------
1 TEST

SQL> insert into test
2 select * from dba_objects;

16603 rows created.

SQL> select extents ,SEGMENT_NAME from dba_segments where
2 SEGMENT_NAME='TEST' and OWNER='SYS';

EXTENTS SEGMENT_NAME
---------- --------------------
8 TEST

SQL> delete from test;

16603 rows deleted.

SQL> select extents ,SEGMENT_NAME from dba_segments where
2 SEGMENT_NAME='TEST' and OWNER='SYS';

EXTENTS SEGMENT_NAME
---------- --------------------
8 TEST

SQL> alter table test move;

Table altered.

SQL> select extents ,SEGMENT_NAME from dba_segments where
2 SEGMENT_NAME='TEST' and OWNER='SYS';

EXTENTS SEGMENT_NAME
---------- --------------------
1 TEST

SQL> insert into test
2 select * from dba_objects;

16603 rows created.

SQL> select bytes,extents,segment_name from dba_segments
2 where SEGMENT_NAME='TEST' and OWNER='SYS';

BYTES EXTENTS SEGMENT_NAME
---------- ---------- --------------------
2424832 8 TEST

SQL> set autotrace traceonly
SQL> select * from test;

16603 rows selected.


Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (FULL) OF 'TEST'




Statistics
----------------------------------------------------------
0 recursive calls
4 db block gets
1315 consistent gets
0 physical reads
0 redo size
1711517 bytes sent via SQL*Net to client
89944 bytes received via SQL*Net from client
1108 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
16603 rows processed

SQL> delete from test;

16603 rows deleted.


Execution Plan
----------------------------------------------------------
0 DELETE STATEMENT Optimizer=CHOOSE
1 0 DELETE OF 'TEST'
2 1 TABLE ACCESS (FULL) OF 'TEST'




Statistics
----------------------------------------------------------
118 recursive calls
18207 db block gets
263 consistent gets
0 physical reads
6745400 redo size
648 bytes sent via SQL*Net to client
445 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
16603 rows processed

SQL> select * from test;

no rows selected


Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (FULL) OF 'TEST'




Statistics
----------------------------------------------------------
0 recursive calls
4 db block gets
229 consistent gets
0 physical reads
0 redo size
784 bytes sent via SQL*Net to client
277 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed

SQL> alter table test move;

Table altered.

SQL> select * from test;

no rows selected


Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (FULL) OF 'TEST'




Statistics
----------------------------------------------------------
0 recursive calls
4 db block gets
0 consistent gets
0 physical reads
0 redo size
784 bytes sent via SQL*Net to client
277 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed

SQL>

结论:alter table ... move不但拉回了HWM,而且回收了extent

alter table move

在oracle9i中,delete很大的表的数据后,需要收缩表的空间,

可以使用alter table tabname move (tablespace tbs_name),

注意:这个时候一定需要rebuild index . 因为move后,数据的rowid变化了

分享到:
评论

相关推荐

    Oracle 10gR2压缩(Compress)技术

    - 分区表压缩属性修改:使用ALTER TABLE ... MODIFY PARTITION ... COMPRESS/NOCOMPRESS命令。 - 分区索引压缩属性修改:对分区索引执行类似的修改操作。 - 分区表空间数据压缩:将数据移动到启用压缩的表空间中。 -...

    Oracle常用的和表(Table)相关的命令

    sql> alter table employee move tablespace users; ``` **解析**: - `move`: 将表移动到其他表空间。 #### 4.4 回收未使用空间(Deallocate Unused Space) **命令格式**: ``` sql> alter table table_name ...

    Oracle碎片整理

    本文将深入探讨Oracle中的碎片整理,主要关注`ALTER TABLE T MOVE`和`ALTER TABLE T SHRINK SPACE`两个命令。 首先,我们来理解什么是Oracle数据库中的碎片。碎片分为两种类型:内部碎片和外部碎片。内部碎片是指...

    Oracle压缩表表空间

    SQL> alter table tmp_test move compress; 同样,也可以使用 alter table.. move nocompress 来解压一个已经压缩的表: SQL> alter tab tmp_test move nocompress; Oracle 压缩表表空间是一种高效的存储技术,...

    oracle里常用命令之三

    sql> ALTER TABLE employee MOVE TABLESPACE users; ``` 8. 释放未使用的空间 `DEALLOCATE UNUSED`命令释放未使用的空间,可选参数`KEEP`保留最小扩展: ```sql> sql> ALTER TABLE table_name DEALLOCATE UNUSED ...

    MOVE域专属1112312

    例如,在Oracle数据库中,可以使用ALTER TABLE语句的MOVE子句来改变表的存储位置,这有助于优化存储布局或调整表空间的使用。 在网络环境中,"move"也可能与域名系统(DNS)中的记录迁移相关,比如将网站的DNS解析...

    oracle修改表空间的全部步骤,包含bob,clob字段

    ALTER TABLE 表名 MOVE TABLESPACE 新表空间名 LOB (字段名) STORE AS (TABLESPACE 新表空间名); ``` 这样可以确保大对象字段也被正确地存储在目标表空间中。 #### 5. 分区表的处理 对于分区表,每个分区都可以...

    Oracle更改表空间(table、index、lob)

    SELECT 'ALTER TABLE ' || t.table_name || ' MOVE TABLESPACE ' || 'target_tablespace_name;' AS alter_sql FROM user_tables t; ``` 这里的`target_tablespace_name`需要替换为你希望移动的目标表空间名称。...

    Oracle分区表学习及应用.doc

    - 更改分区的表空间:通过`ALTER TABLE [table_name] MOVE PARTITION`,可以将分区移动到另一个表空间,如`p_200409`移动到`TS_ZIKEN_01`。 7. 查询与操作特定分区: 可以直接针对分区执行查询和DML操作,如`SELECT...

    Oracle降低高水位的方法

    下面通过具体的步骤展示如何使用`ALTER TABLE <table_name> MOVE`命令来降低Oracle数据库中的高水位: 1. **创建测试表**: ```sql CREATE TABLE test AS SELECT * FROM dba_objects; ``` 2. **统计表的初始...

    Oracle数据库整理表碎片

    - **使用ALTER TABLE MOVE**:这是一种更常用且有效的方式,但需要注意的是,这种方法需要重建索引。 - **Oracle 10g及之后的版本**: - **使用SHRINK命令**:从10g开始,Oracle引入了更为简便的SHRINK命令,它...

    ORACLE的数据段压缩技术.doc

    ALTER TABLE <table_name> MOVE ... COMPRESS; ``` 例如,压缩名为 `T1` 的表: ```sql SQL> alter table T1 move compress; Table altered. ``` 对于分区表,由于其特殊的结构,不能直接对整个表执行 `MOVE ...

    oracle高水位.txt

    ### Oracle高水位概念 在Oracle数据库中,“高水位”(High Water Mark,HWM)是一个非常重要的概念。它标记了数据表中最后一次...以上就是关于Oracle高水位处理脚本的详细解析和相关知识点介绍,希望对你有所帮助。

    数据库实验三

    ALTER TABLE s MOVE TABLESPACE USERS; ALTER TABLE p MOVE TABLESPACE USERS; ALTER TABLE j MOVE TABLESPACE USERS; ALTER TABLE spj MOVE TABLESPACE USERS; ``` 在执行上述命令之前,请确保表中的所有...

    SharePlex实用文档与常见问题解决

    * Alter table move a new tablespace:Alter table move a new tablespace 命令用于修改表的表空间,优化表结构。 三、SharePlex AA 复制实施 SharePlex AA 复制实施是指使用 SharePlex 实现自动化的数据复制,...

    Oracle19c数据库高水位线(HWM)详解与操作指南

    最后,给出了几种降低 HWM 的方法,包括 alter table move、shrink space、数据复制、exp/imp 以及 deallocate unused 等方法。 适合人群:具备 Oracle 数据库基础的数据库管理员和技术人员。 使用场景及目标:帮助...

    创建导入导出Oracle分区表数据[参照].pdf

    ALTER TABLE bill_monthfee_zero MOVE PARTITION p_200409 TABLESPACE ts_ziken_01 NOLOGGING; ``` 查询特定分区的数据: ```sql SELECT COUNT(*) FROM BILL_MONTHFEE_ZERO PARTITION (p_200407); ``` 向分区中...

    数据库表ERP表参考。仅供参考

    --alter table PrizeAmerceRecord add constraint FK_prize_prizetid foreign key(prize_prizetId) references PrizeAmerceType(prizet_id) alter table PrizeAmerceRecord add constraint DF_prize_desc default('...

    Oracle - New Features for Developers in 12c (Arup Nanda)-计算机科学

    Oracle 12c Top 20 New Features for DevelopersArup Nanda Longtime Oracle DBAAgenda • Top features of Oracle 12c for Developers • Excludes PL/SQL– Covered in a different...– alter table t1 move partit

Global site tag (gtag.js) - Google Analytics