关于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变化了
分享到:
相关推荐
- 分区表压缩属性修改:使用ALTER TABLE ... MODIFY PARTITION ... COMPRESS/NOCOMPRESS命令。 - 分区索引压缩属性修改:对分区索引执行类似的修改操作。 - 分区表空间数据压缩:将数据移动到启用压缩的表空间中。 -...
sql> alter table employee move tablespace users; ``` **解析**: - `move`: 将表移动到其他表空间。 #### 4.4 回收未使用空间(Deallocate Unused Space) **命令格式**: ``` sql> alter table table_name ...
本文将深入探讨Oracle中的碎片整理,主要关注`ALTER TABLE T MOVE`和`ALTER TABLE T SHRINK SPACE`两个命令。 首先,我们来理解什么是Oracle数据库中的碎片。碎片分为两种类型:内部碎片和外部碎片。内部碎片是指...
SQL> alter table tmp_test move compress; 同样,也可以使用 alter table.. move nocompress 来解压一个已经压缩的表: SQL> alter tab tmp_test move nocompress; Oracle 压缩表表空间是一种高效的存储技术,...
sql> ALTER TABLE employee MOVE TABLESPACE users; ``` 8. 释放未使用的空间 `DEALLOCATE UNUSED`命令释放未使用的空间,可选参数`KEEP`保留最小扩展: ```sql> sql> ALTER TABLE table_name DEALLOCATE UNUSED ...
例如,在Oracle数据库中,可以使用ALTER TABLE语句的MOVE子句来改变表的存储位置,这有助于优化存储布局或调整表空间的使用。 在网络环境中,"move"也可能与域名系统(DNS)中的记录迁移相关,比如将网站的DNS解析...
ALTER TABLE 表名 MOVE TABLESPACE 新表空间名 LOB (字段名) STORE AS (TABLESPACE 新表空间名); ``` 这样可以确保大对象字段也被正确地存储在目标表空间中。 #### 5. 分区表的处理 对于分区表,每个分区都可以...
SELECT 'ALTER TABLE ' || t.table_name || ' MOVE TABLESPACE ' || 'target_tablespace_name;' AS alter_sql FROM user_tables t; ``` 这里的`target_tablespace_name`需要替换为你希望移动的目标表空间名称。...
- 更改分区的表空间:通过`ALTER TABLE [table_name] MOVE PARTITION`,可以将分区移动到另一个表空间,如`p_200409`移动到`TS_ZIKEN_01`。 7. 查询与操作特定分区: 可以直接针对分区执行查询和DML操作,如`SELECT...
下面通过具体的步骤展示如何使用`ALTER TABLE <table_name> MOVE`命令来降低Oracle数据库中的高水位: 1. **创建测试表**: ```sql CREATE TABLE test AS SELECT * FROM dba_objects; ``` 2. **统计表的初始...
- **使用ALTER TABLE MOVE**:这是一种更常用且有效的方式,但需要注意的是,这种方法需要重建索引。 - **Oracle 10g及之后的版本**: - **使用SHRINK命令**:从10g开始,Oracle引入了更为简便的SHRINK命令,它...
ALTER TABLE <table_name> MOVE ... COMPRESS; ``` 例如,压缩名为 `T1` 的表: ```sql SQL> alter table T1 move compress; Table altered. ``` 对于分区表,由于其特殊的结构,不能直接对整个表执行 `MOVE ...
### 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; ``` 在执行上述命令之前,请确保表中的所有...
* Alter table move a new tablespace:Alter table move a new tablespace 命令用于修改表的表空间,优化表结构。 三、SharePlex AA 复制实施 SharePlex AA 复制实施是指使用 SharePlex 实现自动化的数据复制,...
最后,给出了几种降低 HWM 的方法,包括 alter table move、shrink space、数据复制、exp/imp 以及 deallocate unused 等方法。 适合人群:具备 Oracle 数据库基础的数据库管理员和技术人员。 使用场景及目标:帮助...
ALTER TABLE bill_monthfee_zero MOVE PARTITION p_200409 TABLESPACE ts_ziken_01 NOLOGGING; ``` 查询特定分区的数据: ```sql SELECT COUNT(*) FROM BILL_MONTHFEE_ZERO PARTITION (p_200407); ``` 向分区中...
--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 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