Oracle11g的表

理解11g中,与表相关的几个概念:高水位线, PCTFREE, PCTUSED
理解11g中,表的几种类型
理解何时需要创建簇表来提高访问速度


表的类型:
普通表、分区表、索引组织表IOT、簇表、临时表、嵌套表、对象表等。
高水位线(high-water mark,HWM)

1)高水位线是一个很有趣的概念,但是也是一个非常重要的概念。顾名思义,高水位线有点类型于水文监测站里测水深度的标杆一样,当水涨的时候,水位线随之上升,并在标杆留下一个水印痕,这个水印痕就是高水位线。
2)在数据库中,上述比喻很恰当。如果把表想象成一个平面结构,或者想象成从左到右依次排开的一系列块,高水位线就是包含了数据的最右边的块。如下图所示。
在这里插入图片描述

3)当表刚创建时,HWM位于表的第一个块中。过一段时间后,随着在这个表中放入数据,而且使用了越来越多的块,HWM会升高。但当我们删除了表中的一些(甚至全部)行,可能就会出现许多块不再包含数据,但仍然处于HWM之下,而且会一直保持在HWM之下。记住:HWM永远不会下降,除非使用rebuild、truncated或shrunk这个对象(shrinking是10g的一个新特性,仅ASSM支持)。

4)HWM很重要,因为Oracle在全表 扫描时会扫描HWM之下的所有块,即使其中不包括任何数据。这会影响full scan的性能,特别是当HWM之下的绝大多数块都为空时。下面来看一个例子,创建一个有1000000行的表,然后对其执行select count()。接着delete所有行,再执行select count()统计出0行,比较两次执行的时间。

PCTFREE

在这里插入图片描述

#### PCTUSED
在这里插入图片描述


建立表时候,注意PCTFREE参数的作用

PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期。

PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,即40%,即:当数据低于40%时,又可以写入新的数据,这个时候处在下降期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值