暂无图片
为什么说Oracle数据库的HWM(High-Water Mark)高水位线很重要?
我来答
分享
同同
2023-05-17
为什么说Oracle数据库的HWM(High-Water Mark)高水位线很重要?

为什么说Oracle数据库的HWM(High-Water Mark)高水位线很重要?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新

1. 它控制着MEMORY组织表空闲空间回收机制。当一个segment中的free space超过HWM时,Oracle会认为这些空间是可重用的,并可能将其分配给其他对象使用。HWM mechanisum 可以避免 segment space的碎片化,保持较大的连续空闲空间。

2. 它影响着统计信息的收集。默认情况下,当一个segment中的used space超过HWM的10%时,Oracle会触发对该segment统计信息的收集,稍后用于优化器计划生成。如果HWM设置得太低,会导致过于频繁的统计信息收集,影响性能。

3. 它决定着 segment 中空间的扩展量。一旦segment space使用量超过HWM,Oracle将按照该表空间(tablespace)的NEXT参数设置的大小进行一次性扩展。如果HWM设置得太低,会导致segment频繁小幅扩展,生成大量临时segment。

4. 它影响着LOB字段的存储方式。当一个segment中的used space超过HWM时,后续插入的LOB值将转换为DIRECT LOB,而不是INDIRECT LOB。这会使LOB访问效率提高,但是也会占用更多的表空间存储空间。

5. 它决定着ASSM表空间的段空间管理方式。当一个ASSM表空间中的segment used space超过其HWM时,Oracle将禁止其后续扩展,并将new extents分配给其他正在expanding的segment。这有助于避免ASSM表空间中的空间碎片。

所以HWM高水位线在Oracle数据库中发挥着重要的作用。适当设置HWM可以最大限度发挥Oracle MEMORY组织表的优点,改善性能,增强稳定性。相反,HWM设置不当会导致许多负面影响。理解HWM的工作机制和优化HWM设置对DBA来说是很有价值的技能。

暂无图片 评论
暂无图片 有用 2
打赏 0
暂无图片
victoryau
  1. Oracle数据库中的高水位线(HWM)是衡量数据段使用情况的重要标记,它指示了数据段中已使用过的最高数据块的位置。HWM的重要性在于它直接影响数据库的存储效率和查询性能。当HWM设定过高时,即使实际有效数据只占一小部分,数据库在执行查询操作时仍会扫描所有高于HWM的数据块,导致不必要的资源浪费和性能降低。此外,HWM还关系到空间的回收和管理,因为仅通过删除数据并不能自动降低HWM,而需要进行特定的操作来回收未使用的空间。有效管理HWM,不仅可以优化存储空间的使用,减少碎片,还能提升整体数据库的性能和运行效率。对于数据库管理员来说,合理地掌握和调整HWM是维护数据库健康和性能的一个关键方面。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
业务系统用的是Oracle数据库,现在想再搭另一台数据库,当做业务系统数据库的异地备份。可以及时热备,也可以周期性冷备。想实现这个主要用什么?
回答 2
可以使用oracle的ADG或者OGG都可以实现,或者使用第三方的备份软件,比如NBU等等
关于多租户架构,以下哪三个陈述是正确的? (选择三个。)
回答 3
已采纳
A实例恢复始终在CDB级别执行。D一个PDB可以有一个私有的临时表空间。G日志切换仅在多租户容器数据库(CDB)级别上发生。
oracle 11g 已转换完成的快照库 执行shutdown immediate 会自动删除快照吗?
回答 1
已采纳
不会
热备要不要备controlfile和online redo log ?
回答 3
谢谢!
Oracle中正在写入的表会影响备份吗?
回答 2
不会。
ASM磁盘组无法mount
回答 1
同一个磁盘映射到了多个raw设备
磁盘IO 读写出现十分巨大的差距(写450M /s 读只有800k左右)
回答 1
硬盘是SSD/SAS/SATA,转速多少?貌似USB3.0接到2.0端口上了
oracle 10.2.0.4 登陆hung
回答 8
@章芋文alertawr附件已上传,我是12月12日21:23使用srvctlstopinstance在p550b关闭p550a的数据库实例的,我接到电话的大概是21:04左右,数据库无法连接。
Oracle如何删除大表的重复记录
回答 4
已采纳
这个当然是用开窗函数结合rowid定位记录更快,这样就只要根据rowid删数据就好了。createtabletemprdasselectrdfrom(selectrowidrd,rownumber()
oracle 11g where条件 还是自右向左执行吗?
回答 1
这是RBO的规则,从10g开始默认就是CBO了,where后面的顺序没有关系。《在Oracle中,什么是RBO和CBO?》