Oracle HWM( High Water Mark)

1、什么是HWM

注意:此部分内容请先了解oracle物理结构和逻辑结构

顾名思义,这是一条水位线,oracle的每一个对象都是一个segement,用表来举例,那么这个表你就可以想象成蓄水池,这个HWM就是这条水位线,类比到segement上,水位线以下是存放的数据,水上面就是没有蓄水的水池部分。与传统水池有些许不同,segement的HWM不会下降并且它的高度会自动增加,比如你删除了数据,那么这个HWM是不会下降的,如果你的表存不下数据了,那么他会自动分配新的block到这个segement当中。

segement是一串连续的extend扩展区构成,一个extend扩展区由很多block块构成,一个block由很多rows构成,这个rows就是我们的一条一条的记录。

Above the HWM:these blocks are unformatted and have never been used.

Below the HWM :

Allocated, but currently unformatted and unused

Formatted and contain data

Formatted and empty because the data was deleted

刚开始创建表的时候

插入数据的时候

删除了数据再插入数据的时候

空间不足的时候

为什么图中会出现Low HWM呢?是因为我们在ASSM(自动段空间管理)当中,数据插入到新的数据块当中的时候,数据块并没有格式化,而是在第一次访问这个数据块的时候才格式化这个快,这个LowHWH就是来标识已经格式化的块。

更加详细介绍见官网,再写在这里也是啰嗦

2、如何理解HWM

当我们在进行查询的时候,会扫描我们的存储数据的block,oracle扫描的是HWM以下的数据块。我们使用一个数据表的时候,会发现一个问题,就是在刚开始使用这个表感觉做一些查询什么的都非常快,当使用时间长了的时候,就会发现这个表无论是查询还是什么操作,都会变得很慢,其实这个时候就关乎这个HWM的事情了。

当我们对整个表进行了多次的crud的时候,那么我们的HWM会变得很高,并且这个HWM是不会自己降低的,而且这个时候,在segement里面的存储空间,因为进行了多次增加删除的操作,会存在很多的碎片空间,这时候我们再次插入一条记录,oracle顺序扫描整个存储空间,找到能放下整个记录的碎片空间,然后把这个记录塞进去,这个时候降低了插入的效率,所以你会感觉操作会变得很慢。

同样的,举一个例子,当我们往一个新表中插入一千万的数据记录,然后使用delete操作删除这些记录,那么我们再次执行查询操作,你同样会发现这个select执行的很慢,虽然表中是没有什么记录的,这个时候其实HWM就变成了一个关键。

同样,再举一个例子,我们往一张表中插入大批量的数据,前面的内容我们已经知道,oracle插入记录会扫描表空间的存储碎片,当然小批量的数据可能不存在性能问题,但是,如果我们使用存储过程,插入大批量数据的时候,性能问题其实是值得关注的。那么我们可不可以不扫描碎片空间直接在LOW HWM高水位线后面插入数据呢?答案是可以的,我们这个时候通过加入Append操作,让插入操作直接在高水位线后插入数据。

3、修正Oracle表的HWM

3.1、重建表

复制要保留的数据到临时表,drop掉原表,然后将临时表重命名为原表名

3.2、释放空闲block

ALTER TABLE table_name Deallocate unused

3.3、移动表空间

ALTER TABLE table_name MOVE TABLESPACE tablespace_name

如果不加表空间,则默认为本空间

3.4 shrink (推荐)

segement shrink分为两个阶段

1、数据重组:insert、delete等操作,尽量将数据排在前面,在这个过程表会加上RX锁,只会在需要移动的行上加锁。由于涉及到rowid的修改,需要enable row movement。

2、HWM调整,释放空闲数据块。此过程需要在表加上X锁,会造成表的dml语句阻塞。

alter table_name shrink space [ | compact| cascade];

alter table table_name shrink space compact; -- 收缩表

alter table table_name shrink space; --收缩表 降低HWM

alter table table_name shrink space cascade; --收缩表,降低HWM ,并且把相关索引收缩

alter index idx_name shrink space;--回缩索引

oracle hwm 查询,Oracle HWM( High Water Mark)相关推荐

  1. oracle hwm 查询,Oracle中的HWM

    1.什么是高水位线(High Water Mark) 对于一个段(逻辑上其实可以说一个表),有一个段里容纳数据的上限,这个上限就是高水位线.通常这个HWM只会增加不会减少,因为它记录的是存储数据最多时 ...

  2. oracle hwm 查询,oracle HWM

    Oracle表段中的高水位线HWM : 在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水. 水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(H ...

  3. oracle数据类型查询,Oracle 空间查询, 数据类型为 sdo_geometry

    数据:通过arcgis直连数据库,导入测试数据,导入时数据类型选择SDO_GEOMETRY. 测试数据包含点线面,点数据MAP_USER_POINT, 线数据MAP_USER_LINE,面数据MAP_ ...

  4. oracle if查询,Oracle条件查询

    Oracle条件查询 条件查询需要用到where语句,where必须放到from语句表的后面. 支持如下运算符 运算法 说明 = 等于 <>或!= 不等于 < 小于 <= 小于 ...

  5. 银行使用oracle做查询,Oracle EBS ERP银行信息查询视图

    Oracle EBS ERP银行信息查询视图 CREATE OR REPLACE VIEW XXX_STD_CE_BANKINFO_V AS SELECT cbau.org_id, cba.accou ...

  6. 怎样学好Oracle子查询,Oracle学习(六):子查询

    Oracle学习(6):子查询 子查询 为何要用子查询 SQL> --查询工资比SCOTT高的员工信息 SQL> --1. 知道SCOTT的工资 SQL> select sal fr ...

  7. oracle 闪查询,Oracle的回闪查询

    从oracle9i开始,oracle开始提供回闪查询特性(flashback query),允许将回滚段中的数据进行回闪,通过下面的例子来看一下这个从orac Oracle回闪查询的新特性 从orac ...

  8. 11g oracle controlfile 查询,Oracle 11G 隐含参数“_controlfile_autobackup_delay”

    RMAN设置控制文件自动备份,当发生数据库备份时,或建表空间,删除log文件等物理结构发生改变时,oracle会自动备份控制文件. Oracle 10g会立刻备份,Oracle 11g会有几分钟的延迟 ...

  9. oracle dba_profile,查询oracle的profile设置语句

    进Oracle数据库: su - oracle账户 sqlplus / as sysdba 1.查看数据库用户:select username,account_status from dba_user ...

最新文章

  1. 学python买什么书好-学python3什么书好
  2. Leetcode题解(22)
  3. 翻译(九)——Clustered Indexes: Stairway to SQL Server Indexes Level 3
  4. 使用VS2008在windows平台上试用Kinect
  5. hive 强转为string_String 源码浅析————终结篇
  6. Github客户端下载慢的解决方法
  7. Context-Aware Patch Generation for Better Automated Program Repair -上下文感知补丁生成更好的自动化程序修复
  8. 基础摄影测量学_光束区域网平差法列加密区内第一次迭代的全部原始误差方程式
  9. Unity制作九宫格手机手势解锁密码
  10. vue中forEach跳出循环的问题,以及for循环
  11. Excel作图-显示多层分类轴标签
  12. 数据库三范式最简理解(第一范式,第二范式,第三范式)
  13. 【安卓】Android Studio 3.5的引用包错误
  14. STM32 GPIO 配置之ODR, BSRR, BRR 详解
  15. hdoj杭电问题分类
  16. 异常行为检测算法_检测异常行为的异常或异常类型算法
  17. AAC文件解码成PCM格式文件
  18. Java毕设项目自行车在线租赁管理系统2021(java+VUE+Mybatis+Maven+Mysql)
  19. 腰 相关 (come from hoopchina。。thanks)
  20. 电脑为什么会自动关机

热门文章

  1. 300分钟搞定数据结构与算法课程学习1
  2. 生活英语词汇:常用电器,常见的公共标志和说明
  3. 家庭娱乐用计算机,普通电脑轻松变身家庭娱乐影音共享中心
  4. DevNet: Self-supervised Monocular Depth Learning via Density Volume Construction
  5. JSONObject与JSONArray的用法
  6. SAP adobe form step by step 视频学习教程
  7. tiktok解除 android10,10-TikTok账号被封了怎么办?
  8. 3D 语义分割——Cylinder3D
  9. 【面试相关】数据分析面试前必看知识点QA①
  10. 叉积的证明_向量叉积定义的证明