12_Delete不释放高水位线的问题,与truncate对比实验

本文通过实验详细对比了Oracle中Delete操作与Truncate操作对高水位线(HWM)的影响。Delete操作不释放HWM,而Truncate可以更新HWM。实验还探讨了全表扫描、统计信息收集、表空间占用以及如何降低HWM的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Delete不释放高水位线的问题,与truncate对比实验

Oracle高水位线 HWM对数据库影响:

1. 全表扫描通常要读取直到HWM标记内,所有属于该表数据库块,即使该表中没有任何数据,这样将耗费更多的I/O资源;

2. 即使HWM以下有空闲的数据库块,键入在插入数据时使用了append关键字,则在插入时使用HWM以上的数据块,此时HWM会自动增大;

3. 优点,可使HWM以下的数据块重复利用。

 

----实验-----------------------------------------------------------------------

1. 建表

Create table test_0412 as

select * from user_objects;

2. 查看统计信息

select t.BLOCKS, t.NUM_ROWS

  from user_tables t

 where t.TABLE_NAME = 'TEST_0412';

结果为空,说明系统没有收集到统计信息。

查看段信息:

select blocks from user_segments where segment_name='TEST_0412';

--结果说明数据已保存至段:

BLOCKS   8

-------------------------------------------------------------------------------

Select * from test_0412;

没有统计信息情况下,看执行计划,走的全表扫描,逻辑读为1,物理读为38,如下:

Execution Plan

----------------------------------------------------------

Plan hash value: 3552262383

-------------------------------------------------------------------------------

| Id  | Operation         | Name      | Rows  | Bytes | Cost (%CPU)| Time     |

-------------------------------------------------------------------------------

|   0 | SELECT STATEMENT  |           |    41 |  7790 |     3   (0)| 00:00:01 |

|   1 |  TABLE ACCESS FULL| TEST_0412 |    41 |  7790 |     3   (0)| 00:00:01 |

-------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值