4. 用逻辑导入导出: Emp/Imp

5. Alter table table_name deallocate unused

注:这证明,DEALLOCATE UNUSED为释放HWM上面的未使用空间,但是并不会释放HWM下面的自由空间,也不会移动HWM的位置.

6. 尽量使用truncate.

注意:

在9I中:

1. 如果是INEXTENT, 可以使ALTER TABLE TABLENAME DEALLOCATE UNUSED将HWM以上所有没使用的空间释放

2. 如果MINEXTENT >HWM 则释放MINEXTENTS 以上的空间。如果要释放HWM以上的空间则使用KEEP 0。

ALTER TABLE TABLESNAME DEALLOCATE UNUSED KEEP 0;

3. TRUNCATE TABLE DROP STORAGE(缺省值)命令可以将MINEXTENT 之上的空间完全释放(交还给操作系统),并且重置HWM。

4. 如果仅是要移动HWM,而不想让表长时间锁住,可以用TRUNCATE TABLE REUSE STORAGE,仅将HWM重置。

5. ALTER TABLE MOVE会将HWM移动,但在MOVE时需要双倍的表空间,而且如果表上有索引的话,需要重构索引

6. DELETE表不会重置HWM,也不会释放自由的空间(也就是说DELETE空出来的空间只能给对象本身将来的INSERT/UPDATE使用,不能给其它的对象使用)

在ORACLE 10G:

1. 可以使用ALTER TABLE TEST_TAB SHRINK SPACE命令来联机移动HWM,

2. 如果要同时压缩表的索引,可以发布:ALTER TABLE TEST_TAB SHRINK SPACE CASCADE

5. HWM 特点:

1. ORACLE用HWM来界定一个段中使用的块和未使用的块.

举个例子来说,当我们创建一个表时,ORACLE就会为这个对象分配一个段.在这个段中,即使我们未插入任何记录,也至少有一个区被分配,第一个区的第一个块就称为段头(SEGMENT HEADE),段头中就储存了一些信息,基中HWM的信息就存储在此.此时,因为第一个区的第一块用于存储段头的一些信息,虽然没有存储任何实际的记录,但也算是被使用,此时HWM是位于第2个块.当我们不断插入数据到表后,第1个块已经放不下后面新插入的数据,此时,ORACLE将高水位之上的块用于存储新增数据,同时,HWM本身也向上移.也就是说,当我们不断插入数据时,HWM会往不断上移,这样,在HWM之下的,就表示使用过的块,HWM之上的就表示已分配但从未使用过的块.

2. HWM在插入数据时,当现有空间不足而进行空间的扩展时会向上移,但删除数据时不会往下移.

这就好比是水库的水位,当涨水时,水位往上移,当水退出后,最高水位的痕迹还是清淅可见.

ORACLE 不会释放空间以供其他对象使用,有一条简单的理由:由于空间是为新插入的行保留的,并且要适应现有行的增长。被占用的最高空间称为最高使用标记 (HWM),

3. HWM的信息存储在段头当中.

HWM本身的信息是储存在段头.在段空间是手工管理方式时,ORACLE是通过FREELIST(一个单向链表)来管理段内的空间分配.在段空间是自动管理方式时(ASSM),ORACLE是通过BITMAP来管理段内的空间分配.

4. ORACLE的全表扫描是读取高水位标记(HWM)以下的所有块.

所以问题就产生了.当用户发出一个全表扫描时,ORACLE 始终必须从段一直扫描到 HWM,即使它什么也没有发现。该任务延长了全表扫描的时间。

5. 当用直接路径插入行时,即使HWM以下有空闲的数据库块,键入在插入数据时使用了append关键字,则在插入时使用HWM以上的数据块,此时HWM会自动增大。

例如,通过直接加载插入(用 APPEND 提示插入)或通过 SQL*LOADER 直接路径 数据块直接置于 HWM 之上。它下面的空间就浪费掉了。

oracle hwm的位置,Oracle 高水位(HWM)教程(2)相关推荐

  1. oracle hwm调整语法,各个Oracle 版本下如何调整高水位(HWM)

    各个Oracle 版本下如何调整高水位(HWM) 以下没有注明版本号的各版本都适用. 1.CTAS : create table xxx_new tablespace new_tablespace_n ...

  2. oracle delete block,Oracle delete和truncate对高水位(HWM)的影响详细解析

    在讨论高水位之前需要明确一下oracle的逻辑存储的概念:Block.extent.segment.tablespace block:块的概念,他是oracle最小的一个存储单元,一般为8K,也是一次 ...

  3. 数据表 高水位 mysql_Oracle中的高水位(HWM)

    Linux公社(www.linuxidc.com)是专业的Linux系统门户网站,实时发布最新Linux资讯,包括Linux.Ubuntu.Fedora.RedHat.红旗Linux.Linux教程. ...

  4. mysql 回收高水位_Oracle 高水位(HWM)回收原理及操作方法

    一.  高水位(HWM)及其产生原因 High Water Mark,HWM) 是Oracle(Segment)级别的概念.在仅有DML(比如delete,insert)操作时,高水位线只会增长,不会 ...

  5. Oracle 高水位(HWM: High Water Mark) 说明

    一. 准备知识:ORACLE的逻辑存储管理.        ORACLE在逻辑存储上分4个粒度: 表空间, 段, 区 和 块.        1.1 块: 是粒度最小的存储单位,现在标准的块大小是8K ...

  6. 高水位(HWM)详解

    什么是高水位线? 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称为"high water ...

  7. ORACLE 高水位(HWM)

    在9I中: (1)如果MINEXTENT 可以使ALTER TABLE TABLENAME DEALLOCATE UNUSED将HWM以上所有没使用的空间释放 (2)如果MINEXTENT >H ...

  8. 还原oracle控制文件位置,oracle 11.2 控制文件还原

    ****************************************** 1.控制文件备份分类 ****************************************** 通常分 ...

  9. oracle jdbc jar位置,Oracle JDBC ojdbc6 Jar作为Maven依赖项

    我似乎无法让Maven将ojdbc6.jar文件捆绑到项目的war文件中.直接为Hibernate工具指定依赖项时,我可以在POM文件中使用它.但是它不会与项目的war文件捆绑在一起,因此我的项目无法 ...

最新文章

  1. BZOJ4567 SCOI2016背单词(trie+贪心)
  2. mysql 5.7 主从切换_mysql5.7 主从复制的正常切换【转】
  3. python自然语言处理库_Python 自然语言处理(NLP)工具库汇总
  4. 单例设计模式八种写法
  5. Linux下testlink安装
  6. Enabled AWE
  7. 中国航天人才市场网站被黑达90余天
  8. java导入hbase_如何用java导入hbase.dat文件
  9. Mac OS 搭建phonegap开发环境
  10. windows系统 cmd 下载python包的代理配置
  11. mtk android内核代码,mtk log系统详解
  12. Excel中常用技巧
  13. vue 应用中Throttling navigation to prevent the browser from hanging.问题
  14. 局域网服务器文件夹隐藏,共享文件设置隐藏 隐藏共享文件夹的方法
  15. Python获取pi值的五种方法
  16. 存储系统 - IOPS与带宽的关系
  17. c语言在测绘工程中的作用,测绘C程序设计实习报告
  18. 新“病毒营销”案例--凡客体
  19. ACP_1_敏捷价值观原则
  20. 网上书店管理系统项目【Java数据库编程实战】

热门文章

  1. android byte转string_高性能AES256对称加解密,兼容Java、IOS、Android
  2. 51单片机实现c语言字母滚动,基于51单片机的led点阵滚动显示上下左右c语言程序.docx...
  3. html代码自动提示语怎么设置,怎么为Html的Select加提示语_html
  4. 三点滑动平均法怎么计算的_孔径千分尺怎么用,能看懂吗?
  5. [洪流学堂]Unity2017.3新功能:程序集定义(Assembly Definition File)功能详解
  6. 利用导航网格限制玩家移动范围
  7. 用unity制作能量护盾(1)
  8. mvc 前段定义变量_3分钟短文 | Laravel blade模板里优雅地定义PHP变量
  9. OpenShift 4 之 GitOps(5)用ArgoCD配置其他OpenShift资源
  10. 使用TensorFlow.js进行AI在网络摄像头中翻译手势和手语