当使用delete表数据后,空间无法释放,可以使用表收缩释放表空间;

注意:当delete表大量数据的时候要注意undo,可以使用:alter  table  emp  nologging; 让其不生产日志

一、表的增长方式

当表被创建后,随着记录的不断插入,组成表的区间会被填满,如果启用了自动扩展,则当区间填满后,会分配新的区间。假定高水

位线随着记录的增加从最左端往右端来移动,当到底部区间的尾端时,则新的区间将会被分配。

二、表可收缩的原理

随着记录的增加高水位线不断的右移,记录的删除不会导致高水位线往回(左)移动

删除记录后的空闲空间(高水位线左侧)尽管可以使用,但其稀疏性导致空间空闲

注:完整的表扫描所耗费的时间不会因为记录的减少(删除)而减少

三、使用 alter table tbname shrink space 来收缩表段

1. 实现原理

实质上构造一个新表(在内部表现为一系列的DML操作,即将副本插入新位置,删除原来位置的记录)

靠近末尾处(右端)数据块中的记录往开始处(左端)的空闲空间处移动(DML操作),不会引起DML触发器

当所有可能的移动被完成,高水位线将会往左端移动(DDL操作)

新的高水位线右边的空闲空间被释放(DDL操作)

2. 实现前提条件

必须启用行记录转移(enable row movement)

仅仅适用于堆表,且位于自动段空间管理的表空间(堆表包括:标准表,分区表,物化视图容器,物化视图日志表)

3. 不能实现收缩的表

群集表

具有LONG类型列的表

LOB段(尽管表本身可以被缩小),注,10gR2以后版本支持对LOB段的收缩

具有基于提交的物化视图的表(因为禁用了触发器)

具有rowid物化视图的表(因为rowid发生了变化)

IOT映射表IOT溢出段

索引基于函数的表

未启用行记录转移的堆表

4. 段收缩的优点

提高缓存利用率,提高OLTP的性能

减少磁盘I/O,提高访问速度,节省磁盘空间

段收缩是在线的,索引在段收缩期间维护,不要求额外的磁盘空间

5. 两个选项

cascade: 缩小表及其索引,并移动高水位线,释放空间

compact: 仅仅是缩小表和索引,并不移动高水位线,不释放空间

alter table tbname shrink space 相当于带cascade参数

实战练习:

1、首先删除表里的数据

SQL> alter table FEE_COLLECT_TMP nologging;   ----设置表不产生undo

SQL> delete from FEE_COLLECT_TMP where CUTOFFDAY='20170501';

SQL> commit;

2、收缩表

SQL> alter table FEE_COLLECT_TMP enable row movement;                 -->开启row movement

SQL> alter table FEE_COLLECT_TMP shrink space;                        -->shrink成功

3、语法总结:ALTER TABLE  ENABLE ROW MOVEMENT   -->前提条件

ALTER TABLE  SHRINK SPACE [  | COMPACT | CASCADE ];

ALTER TABLE  SHRINK SPACE COMPCAT;  -->缩小表和索引,不移动高水位线,不释放空间

ALTER TABLE  SHRINK SPACE;     -->收缩表,降低高水位线;

ALTER TABLE  SHRINK SPACE CASCADE; -->收缩表,降低高水位线,并且相关索引也要收缩一下

ALTER TABLE  MODIFY LOB (lob_column) (SHRINK SPACE);  -->收缩LOB段

ALTER INDEX IDXNAME SHRINK SPACE;     -->索引段的收缩,同表段

#################################################################

1、收缩普通表,批量脚本

select'alter table '||table_name||' enable row movement;'||chr(10)||'alter table '||table_name||' shrink space;'||chr(10)from user_tables;

select'alter index '||index_name||' shrink space;'||chr(10)from user_indexes;

oracle 12c缩容磁盘组,oracle 表收缩相关推荐

  1. 案例:Oracle报错ASM磁盘组不存在或没有mount

    案例:Oracle报错ASM磁盘组不存在或没有mount 环境:RHEL 6.5 + Oracle Standby RAC 11.2.0.4 我做Standby RAC实验时,在恢复控制文件时,报错无 ...

  2. 数据库面试 - 如何设计可以动态扩容缩容的分库分表方案?

    数据库面试 - 如何设计可以动态扩容缩容的分库分表方案? 面试题 如何设计可以动态扩容缩容的分库分表方案? 面试官心理分析 对于分库分表来说,主要是面对以下问题: 选择一个数据库中间件,调研.学习.测 ...

  3. 动态扩容缩容的分库分表方案

    1.面试题 如何设计可以动态扩容缩容的分库分表方案? 2.面试官心里分析 (1)选择一个数据库中间件,调研.学习.测试 (2)设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,3个库每 ...

  4. 如何设计可以动态扩容缩容的分库分表方案?

    面试题 如何设计可以动态扩容缩容的分库分表方案? 面试官心理分析 对于分库分表来说,主要是面对以下问题: 选择一个数据库中间件,调研.学习.测试: 设计你的分库分表的一个方案,你要分成多少个库,每个库 ...

  5. oracle asm clsecho,ASM磁盘组一点管理

    [Oracle@ www.linuxidc.com ~]$ export ORACLE_SID=+ASM2 [oracle@ www.linuxidc.com ~]$ asmcmd Connected ...

  6. oracle 11g rac asm磁盘组增加硬盘

    要增加磁盘的磁盘组为:DATA 要增加的磁盘为: /dev/sde1 在第一个节点上: [root@rac1 ~]# fdisk /dev/sde Device contains neither a ...

  7. oracle oda建立磁盘组,Oracle ODA一体机介绍.pdf

    Oracle ODA一体机介绍 ORACLE产品介绍 Oracle 数据库设备 Oracle 数据库设备可简化高可用性数据库解决方案的部署.维护 和支持,从而节省时间和资金.它提供了全面.一体化的集群 ...

  8. oracle集群+默认什么组,Oracle RAC 建设过程中必须应知、应做(上)

    原标题:Oracle RAC 建设过程中必须应知.应做(上) 作者:赵海,某城商行系统架构师,专注并擅长银行数据中心解决方案规划及设计.目前在社区会员关注TOP100排行榜中名列第三位,社区专业技能榜 ...

  9. oracle 12c创建归档,实测创建 Oracle 12C Dataguard

    Oracle 12C Dataguard 环境:centOS 6.4 64bit   oracle 12C 12.1.0.1.0 - 64bit 主库:10.168.9.52   sid=bbc  d ...

最新文章

  1. 【cs229-Lecture7】支持向量机(SVM)
  2. 算法竞赛入门第二版解题报告
  3. resize函数_每日一题手写函数防抖与节流
  4. 单片机 10种软件滤波方法的示例程序
  5. Windows消息机制学习笔记(一)—— 消息队列
  6. 全球及中国生物识别车辆访问技术行业十四五应用现状及未来展望规划报告2022-2027年
  7. 使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js
  8. 循环打印三角形 java 0913
  9. 无限网盘,36个T,360网盘无限空间的申请方法www.credream.com
  10. post请求体 ajax,ajax的post请求 @RequestBody解析问题
  11. WebView 简介
  12. Cocos2d-x物理引擎概述
  13. html编辑器怎么设置为excel,excel2013宏编辑器的设置方法教程
  14. USB无线网卡和PCI-E无线网卡如何选择?
  15. 一键导出ChatGPT聊天记录:让备份更简单
  16. 判断将输入字母,进行大写转小写,小写转大写
  17. 联想笔记本电脑键盘灯怎么开启_联想笔记本电脑的键盘背光怎么打开
  18. Centos7上的Ansible管理Windows主机的部署
  19. 安卓学习笔记--全志的固件工具
  20. 计算机组成原理----有关数据通路

热门文章

  1. linux下带密码的scp,linux下带密码的scp
  2. dubbo源码解析(二)
  3. AppTheme 属性详解
  4. typescript 安装
  5. Seafile 开源企业云盘部署
  6. sql服务器如何复制数据库文件,如何将架构和一些数据从SQL Server复制到另一个实例?...
  7. 我的世界JAVA刷怪范围_《我的世界》只有刷怪蛋能够刷新生物吗?并不是,还有一种物品!...
  8. python中使用正则模板匹配结果
  9. javascript 运算符优先级
  10. Python学习之==文件操作