在oracle中可以使用alter table table_name shrink space收缩表,使用shrink有两个前提条件:

1、表必须启用row movement

2、表段所在表空间的段空间管理(segment space management)必须为auto实验如下:

--建立一个segment space management auto表空间

SQL> create tablespace ts_auto

datafile 'd:\oracle\product\10.2.0\oradata\orcl\ts_auto.dbf' size 100m

extent management local segment space management auto;表空间已创建。

--建议测试表

SQL> create table  tb_auto  as select * from dba_objects;表已创建。

--查看shrink前的块数量

SQL> select blocks from dba_segments where segment_name='TB_AUTO';    BLOCKS

----------

768

--delete数据后,空间占用没有变化

SQL> delete from tb_auto;已删除50390行。

SQL> commit;

提交完成。

SQL> select blocks from dba_segments where segment_name='TB_AUTO';    BLOCKS

----------

768

--直接收缩,提示必须启动row movement选项

SQL> alter table tb_auto shrink space;

alter table tb_auto shrink space

*

第 1 行出现错误:

ORA-10636: ROW MOVEMENT is not enabled

SQL> alter table tb_auto enable row movement;表已更改。

--收缩成功,空间已经释放

SQL> alter table tb_auto shrink space;表已更改。

SQL> select blocks from dba_segments where segment_name='TB_AUTO';    BLOCKS

----------

8

--shrink不能在segment space management manaual的表空间的段上执行

SQL> create tablespace ts_manual

datafile 'd:\oracle\product\10.2.0\oradata\orcl\ts_mannel.dbf' size 100m

extent management local segment space management manual;表空间已创建。

SQL> select tablespace_name,segment_space_management from dba_tablespaces;TABLESPACE_NAME                SEGMEN

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

SYSTEM                         MANUAL

UNDOTBS1                       MANUAL

SYSAUX                         AUTO

TEMP                           MANUAL

USERS                          AUTO

EXAMPLE                        AUTO

TS_AUTO                        AUTO

TS_MANUAL                      MANUAL

已选择8行。

SQL> create table tb_manual tablespace ts_manual as select * from dba_objects;表已创建。

SQL> alter table tb_manual  shrink space

2  ;

alter table tb_manual  shrink space

*

第 1 行出现错误:

ORA-10635: Invalid segment or tablespace type

段缩小操作只能应用于自动段空间管理的表空间,在对一个表空间中的表段进行缩小操作时,必须为表启动记录转移,操作语法为:

SQL>alter table enable row movement;

SQL>alter table shrink space cascade;

SQL>alter table modify lob(resume) (shrink space);

SQL>alter table overflow shrink space;

SQL>analyze table table_name validate structure cascade;  --分析一下表及索引的一致性是否完好

SQL>analyze index index_name validate structure;  --验证数据块及索引键的完整性

SQL>analyze table table_name validate structure;  --验证每个数据块和每条记录的完整性

SQL>alter table employees shrink space compact;

SQL>alter table employees shrink space;

oracle 段空间收缩,Oracle10g用Shrink Space收缩Oracle数据段相关推荐

  1. Oracle 自动段空间管理(ASSM:auto segment space management)

    一. 官网说明 Logical Storage Structures http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/lo ...

  2. oracle 空间 链接,Oracle 自动段空间管理(ASSM:auto segment space management)

    二. ASSM说明 在Orale 9i以前,表的剩余空间的管理与分配都是由链接列表freelist来完成的,因为freelist存在串行的问题因此容易引起往往容易引起段头的争用与空间的浪费(其实这一点 ...

  3. oracle自管理段,Oracle 自动段空间管理(ASSM:auto segment space management)

    一. 官网说明 Logical Storage Structures http://download.Oracle.com/docs/cd/E11882_01/server.112/e16508/lo ...

  4. oracle shrink space compact,oracle 学习笔记 Shrink 参数 compact

    alter table t shrink space 与 alter table t shrink space compact 区别在于compact 只对空间进行紧缩,高水位不下降. SQL> ...

  5. oracle表空间状态如何离线,六步了解Oracle表空间状态

    六步了解Oracle表空间状态 本人很喜欢Oracle表空间,在工作中也很喜欢总结关于Oracle表空间状态的经验教训,下面就这个问题来详细说说吧. 1.查询Oracle表空间状态 select ta ...

  6. oracle查看表扩展,求助:如何查询oracle表空间允许自动扩展的最大值? - Oracle论坛 - 51CTO技术论坛_中国领先的IT技术社区...

    --表空间使用率检查脚本 --注:该脚本有个缺陷,无法检查使用率为100%的表空间,即dba_free_space中没有记录的表空间 SELECT UPPER(F.TABLESPACE_NAME) T ...

  7. 收缩表段(shrink space)

    --==================== -- 收缩表段(shrink space) --==================== 一.表的增长方式     当表被创建后,随着记录的不断插入,组成 ...

  8. 【skill】收缩表段(shrink space)

    收缩表段(shrink space) CREATE OR REPLACE PROCEDURE show_space ( p_segname IN VARCHAR2, p_owner IN VARCHA ...

  9. 内存空间分几部分:代码段、数据段,栈,堆 (收集整理)

    1.函数代码存放在代码段.声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间. 全局变量或静态变量,放在数据段, 局部变量放在栈中, 用new产生的对象放在堆中, 内存分为4段,栈区 ...

最新文章

  1. ActiveMQ持久化消息的三种方式
  2. 5.1 代码合并:Merge、Rebase的选择
  3. C++二维数组讲解、二维数组的声明和初始化
  4. Python:利用python编程实现三维图像绘制展示(六面体旋转、三维球柱状体、下雪场景等)
  5. Request.Form的用法
  6. 将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1.3X
  7. [html] 编写一个布局,让文字环绕在图片的周围
  8. opencv画框返回坐标 python_20行Python代码实现视频字符化
  9. android ble 大小,Android BLE中传输数据的最大长度怎么破
  10. OpenMAX IL介绍与其体系
  11. Cross-validation 交叉验证
  12. PNP三极管限流电路分析
  13. 这款微信插件太好用了
  14. 论文解读(IGSD)《Iterative Graph Self-Distillation》
  15. vs没有添加引用_足球赛事比分:尤文图斯VS里昂欧冠
  16. 二年级期末计算机基础试题答案,小学二年级语文期末考试卷
  17. android9是最新版本,Android9.0正式版发布,你的手机升级到主流Android8.0系
  18. 邬江兴-拟态计算与拟态安全
  19. 黑群晖6.x安装教程
  20. Eclipse中关联并调试JDK源码

热门文章

  1. 【windows】windows 11 安装解决 这台电脑无法运行 Windows 11
  2. dbus PHP,安装dbus-python的简要教程
  3. 文件路径转换为数组php,php – 如何将目录结构转换为url数组
  4. python数据写入csv不换行_你还在重复工作?Python轻松读写核对csv表格上万条数据!...
  5. 转--ASP.NET页面之间传值方式
  6. SQL SERVER数据库附加是只读的解决方法
  7. HTML5中的Web Notification桌面通知(右下角提示)
  8. zookeeper的安装与配置(单机和集群)
  9. css改变滚动条样式
  10. windows 编程 —— 消息与参数(滚动条、键盘、鼠标)