`
insertyou
  • 浏览: 905504 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

高水位线和全表扫描

 
阅读更多

高水位线好比水库中储水的水位线,用于描述数据库中段的扩展方式。高水位线对全表扫描方式有着至关重要的影响。当使用delete 操作
表记录时,高水位线并不会下降,随之导致的是全表扫描的实际开销并没有任何减少。本文给出高水位线的描述,如何降低高水位线,以及高水
位线对全表扫描的影响。

一、何谓高水位线
如前所述,类似于水库中储水的水位线。只不过在数据库中用于描述段的扩展方式。
可以将数据段或索引段等想象为一个从左到右依次排开的一系列块。当这些块中未填充任何数据时,高水位线位于块的最左端(底端)
随着记录的不断增加,新块不断地被填充并使用,高水位线随之向右移动。高水位线之上为未格式化的数据块。
删除(delete)操作之后,高水位线之下的块处于空闲状态,但高水位线并不随之下降,直到重建,截断或收缩表段。
全表扫描会扫描高水位线之下的所有块,包括空闲数据块(执行了delete操作)。

低高水位线
是在使用ASSM时的一个概念。即使用ASSM时除了高水位线之外,还包括一个低高水位线。低高水位线一定是位于高水位线之下。
当段使用MSSM管理方式时只有一种情况即只存在一个高水位线。
使用MMSM时,当HWM升高时,Oracle立即格式化所有块且有效,并可以安全读取。仅当第一次使用时完成格式化,便于安全读取数据。
使用ASSM时,当HWM升高时,Oracle并不会立即格式化所有块。仅当第一次使用时完成格式化,便于安全读取数据。
使用低高水位线可以减少当全面扫描表段时,低高水位线与高水位线之间不安全块的检查数量。即低高水位线之下的块不再检查。

二、演示高水位线与全表扫描

三、总结
1、高水线直接决定了全表扫描所需要的I/O开销
2、delete操作不会降低高水位线,高水位线之下的所有块依然被扫描
3、使用truncate 会重置高水位线到0位
4、定期使用alter table tab_name shrink space cascade 有效减少该对象上的I/O开销

四、延伸参考
收缩表段(shrink space)

dbms_xplan之display_cursor函数的使用
dbms_xplan之display函数的使用
执行计划中各字段各模块描述
Oracle 绑定变量窥探
Oracle 自适应共享游标
Oracle ROWID

分享到:
评论

相关推荐

    高水位线详解

    在 Oracle 数据的存储中,可以把存储空间想象为一个水库,数据想象为水 库中的水。水库中的水的位置有一条线叫做水位线,在 Oracle 中,这条线被称为`高水位线(High-warter mark, HWM)

    oracle高水位线

    在 Oracle 中,每个段(包括表、索引等)都有一个高水位线,用于记录该段已经使用的数据块的数量。 准备知识:ORACLE 逻辑存储管理 --------------------------- Oracle 在逻辑存储上分 4 个粒度:表空间、段、区...

    如何降低DB2的管理表空间的高水位标记

    对于DB2数据库管理(DMS)表空间的高水位标记(HWM)是指该表空间曾经使用到的最大数据页数。如果使用:db2 list tablespaces show detail,看到某个DMS表空间的已用页数低于高水位标记,则有可能通过如下方法降低高...

    基于深度学习的水位线检测算法.pdf

    2. 高精度的水位检测:深度学习技术可以对图像进行高精度的分析和处理,从而实现高精度的水位检测。 3. 强适应能力:基于深度学习的水位线检测算法可以在恶劣环境下进行水位检测,如夜间下雨、红外光源照明等情况下...

    基于深度学习的水位线检测算法_廖赟1

    《基于深度学习的水位线检测算法》这篇文章探讨了如何利用深度学习技术,特别是卷积神经网络(CNN),来实现对河道、水库等开放水域的水位监测。传统的水位监测方式依赖于特殊设备,如水位标尺或压力传感器,而这种...

    Oracle 表的扫描方式及连接方法

    Oracle 读取表中所有的行,扫描该表中高水位线(HWM, High Water Mark)以下的所有数据块。随着数据量的增加,高水位线会不断上涨,读取的数据块就会不断增加。在做 Delete 操作的时候,即使把表中的数据都删掉了,...

    oracle高水位.txt

    - **存储浪费**:如果表中存在大量的删除和更新操作,那么高水位线以下的空间可能会被标记为已使用但实际上是空闲的,这将导致存储资源的浪费。 ### Oracle高水位处理脚本分析 #### 脚本解读 1. **分析表统计信息*...

    Oracle19c数据库高水位线(HWM)详解与操作指南

    内容概要:本文详细介绍了 Oracle 19c 数据库中的高水位线 (High Water Mark, HWM) 概念及其操作。首先解释了 HWM 的定义和特点,随后探讨了 HWM 对全表扫描和插入操作的影响。文中通过具体的 SQL 示例,展示了如何...

    浅谈ORACLE高水位线的解决方法.pdf

    浅谈ORACLE高水位线的解决方法.pdf

    C# opencv 液体水位检测、高度水位检测

    5. 水位线识别:分析液体边缘,找到水与容器之间的交界线,即水位线。 四、高度水位检测 高度水位检测是在水位检测基础上,进一步计算出液体相对于容器底部的高度。这可能涉及到以下技术: 1. 目标坐标转换:通过...

    水位观测记录表.xls

    水位观测记录表

    根据库容水位曲线和泄流过程反算入库流量

    而在水位较高时,库容的增加则相对快速。这条曲线不仅有助于确定水库在特定水位下的储水量,也为计算入库流量提供了必要的数据支持。 泄流过程是水库调节过程中非常重要的一个环节。它描述了水库在某一特定时间内的...

    防洪高水位_洪水_matlab_水利_防洪高水位_

    在水电站设计与运营中,防洪高水位是一个至关重要的概念,它涉及到水电站的安全运行、水库调度以及周边地区的洪水防控。防洪高水位是根据历史洪水资料、水文气象条件、地理环境等因素,通过专业计算确定的水库在汛期...

    flink中的时间语义和水位线及迟到处理

    ### Flink中的时间语义、水位线及迟到数据处理详解 #### 一、窗口的作用与分类 **1.1 窗口的作用** 在Flink的流处理中,窗口是一种重要的机制,它将无限的数据流分割成有限的片段来进行处理。这种分割使得流处理...

    Oracle 高水位概念(hwm)

    - **查询优化**:在执行全表扫描时,Oracle可以跳过高水位以上未使用的空间,只扫描实际包含数据的部分,提高查询效率。 - **段重组**:HWM也影响到段的重组操作,如压缩、移动或分区交换,这些操作通常会基于HWM...

    高水位(High_Water_Mark)的概念及高水位问题的解决

    有时候即便是表中数据很少,一条全表扫描的 SQL 仍然很慢,有时候表的数据很少,但是仍然占用很多空间,这些都是高水位在作怪。 2. 块(block) 块(block)是 Oracle 粒度最小的存储单元,当前标准的块大小是 8K...

    Oracle_高水位(HWM_High_Water_Mark)_说明.rar_High Water_Oracle 高水位

    Oracle数据库中的“高水位”(High Water Mark, HWM)是表空间管理的一个关键概念,它对于数据库的性能和空间利用率有着深远的影响。本文将深入解析高水位的概念、作用,以及如何调整以优化存储效率。 高水位(HWM...

    浊漳河流域高水位流砂层管道施工工艺

    浊漳河流域的地形和水文条件复杂,高水位流砂层的地质特点为管道施工带来了极大的挑战。在这样的地质条件下,传统的管道施工方法难以实施,因此需要采用创新的施工工艺来保障工程的顺利进行。榆济输气管道工程浊漳河...

    Oracle降低高水位的方法

    在Oracle数据库中,高水位(High Water Mark, HWM)是衡量表数据存储位置的一个关键概念。它标识了表中数据曾经达到的最高存储位置。每当向表中插入、更新或删除数据时,Oracle数据库会自动管理数据的存储位置。值得...

Global site tag (gtag.js) - Google Analytics