oracle回收表空间碎片,Oracle教程之管理表(五)--Oracle表空间回收

这篇博客展示了如何在 Oracle 数据库中管理表空间,包括分析表、删除记录、移动表以及尝试使用 shrinkspace 命令释放空间。在删除部分记录后,通过 alter table move 和 shrinkspace 操作调整了 EMP1 表的块数和空闲块,有效地管理了数据库资源。
摘要由CSDN通过智能技术生成

1、原始表结构信息

06:49:50 SQL> analyze table emp1 compute statistics;

Table analyzed.

06:50:00 SQL> select table_name,blocks,empty_blocks,num_rows from user_tables

06:50:18   2   where table_name='EMP1';

TABLE_NAME     BLOCKS EMPTY_BLOCKS   NUM_ROWS

---------- ---------- ------------ ----------

EMP1               91            5      14336

2、delete删除部分记录

06:50:48 SQL> DELETE from emp1 where deptno=30;

6144 rows deleted.

06:50:53 SQL> select count(*) from emp1;

COUNT(*)

----------

8192

06:51:03 SQL> analyze table emp1 compute statistics;

Table analyzed.

06:51:08 SQL> select table_name,blocks,empty_blocks,num_rows from user_tables

06:51:11   2   where table_name='EMP1';

TABLE_NAME     BLOCKS EMPTY_BLOCKS   NUM_ROWS

---------- ---------- ------------ ----------

EMP1               91            5       8192

3、利用move 释放空间

06:51:49 SQL> alter table emp1 move;

Table altered.

06:51:53 SQL>  analyze table emp1 compute statistics;

Table analyzed.

06:51:57 SQL> select table_name,blocks,empty_blocks,num_rows from user_tables

06:52:01   2  where table_name='EMP1';

TABLE_NAME     BLOCKS EMPTY_BLOCKS   NUM_ROWS

---------- ---------- ------------ ----------

EMP1               53            3       8192

4、利用 shrink space 释放空间

06:52:03 SQL> DELETE from emp1 where deptno=10;

4096 rows deleted.

06:52:28 SQL> select count(*) from emp1;

COUNT(*)

----------

4096

06:52:33 SQL> analyze table emp1 compute statistics;

Table analyzed.

06:52:36 SQL> select table_name,blocks,empty_blocks,num_rows from user_tables

06:52:39   2    where table_name='EMP1';

TABLE_NAME     BLOCKS EMPTY_BLOCKS   NUM_ROWS

---------- ---------- ------------ ----------

EMP1               53            3       4096

06:53:36 SQL> alter table emp1 shrink space;

alter table emp1 shrink space

*

ERROR at line 1:

ORA-10636: ROW MOVEMENT is not enabled

06:53:56 SQL> alter table emp1 enable row movement;

Table altered.

06:54:15 SQL> alter table emp1 shrink space;

Table altered.

06:54:42 SQL> select table_name,blocks,empty_blocks,num_rows from user_tables

06:54:46   2  where table_name='EMP1';

TABLE_NAME     BLOCKS EMPTY_BLOCKS   NUM_ROWS

---------- ---------- ------------ ----------

EMP1               53            3       4096

06:54:48 SQL> analyze table emp1 compute statistics

06:54:57   2  ;

Table analyzed.

06:54:58 SQL> select table_name,blocks,empty_blocks,num_rows from user_tables

06:55:01   2   where table_name='EMP1';

TABLE_NAME     BLOCKS EMPTY_BLOCKS   NUM_ROWS

---------- ---------- ------------ ----------

EMP1               22           10       4096

CUUG

更多oracle视频教程请点击:http://crm2.qq.com/page/portalpage/wpa.php?uin=800060152&f=1&ty=1&aty=0&a=&from=6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值