关于Oracle的高水平线
来源:互联网 发布:辐射4配置要求优化 编辑:程序博客网 时间:2024/05/16 05:47
原创于2009年01月10日,2009年10月17日迁移至此。
关于Oracle的高水平线
high water mark故名思义为高水平线,一般是相对一个表而言的,当一个表有数据不断的插入时,high water mark值不断增高,对那些全表扫描的select查询是以high water mark为终点的,虽然表中可能只有一行记录.它是表的空间曾经扩充到的值.
之所以对hwm产生了兴趣还是缘于下午的那个resize事件,呵呵
创建一张test表
-- Create table
create table TEST
(
ACHAR(1024)
);
select * from dba_extents wheresegment_name='TEST'
后见图:表创建的时候会按照初始化参数进行创建,默认是Initial extent为64k,包含8个数据块。
插入1000条原始记录,1000*1k约等于1M
declare
--Local variables here
iinteger;
begin
--Test statements here
fori in 1..1000
loop
INSERT INTO TEST VALUES(I);
endloop;
COMMIT;
end;
select SUM(BYTES) from user_extents wheresegment_name='TEST'
select * from dba_extents wheresegment_name='TEST'
后见图:
执行delete操作
Delete * from test;
执行后的图与上面一样,没有发生任何变化
再执行truncate操作,把该表的高水平线恢复到原有的初始化阶段
TRUNCATE TABLE TEST;
后见图:
结论:
数据被删除后,高水平线(high-watermark,HWM)并没有复位只是那些空间不再使用而已,再次查询依然会读取HWH以前的块查找是否有可用的数据。而截断表将复位HWH,告诉这些空间没有保存数据。
其他引申出来的问题:
在插入测试的数据过程中,如果首先插入100条、200条的时候,数据库分配区间是以64k为单位分配的,当插入到1000条时,新分配的区间突然变为1M。
我反复查看了该表的storage定义
storage
(
initial 64K
minextents 1
maxextents unlimited
);
只是没有next extent的定义而已,又找了很久9i、10g的官方文档,发现对next extent的解释还是按照早期版本的说法,定义多少分配多少,百思不得其解。
还是通过google找到的介绍:
先分配16个64K的extent,
0-15 extents每个大小是64K合计大小1M
16-79 extents每个大小是1M合计大小63M --以上两项大小合计64M
80-199 extents每个大小是8M合计大小960M --以上三项大小合计1024M=1G
200-??extents每个大小是64M
具体参考文档,详见:
Oracle10g extent autoallocate分配时,表是如何分配空间
http://space.itpub.net/35489/viewspace-84692
Oracle9i tablespace空间分配中initial_extent与LMT,DMT
http://space.itpub.net/35489/viewspace-503836
- 关于Oracle的高水平线
- 关于Oracle的高水平线
- 关于display:inline-block的元素不在同一水平线
- HTML中基本的水平线
- 求两点之间的水平线
- 关于垂直线和水平线判断问题
- 关于垂直线和水平线判断问题
- CSS制作虚线效果的水平线(转贴)
- 定义HR水平线的几种样式
- 付丽叶变换图求水平线的斜率
- 关于oracle中的高水位线问题
- 使用android中drawline函数无法绘制水平线的解决办法
- android中空的view,可以设置为水平线
- 水平线阵的反卷积常规波束形成
- 刚刚完成的,关于JAVA中oracle数据库连接的(jdbc),难度不高!!!
- <hr />水平线
- 加粗水平线
- ORACLE的高水位线
- 关于Oracle Stream的安装、配置和使用
- 新篇
- C++为什么成功?第二部分
- 项目管理从改变团队开始
- 将MS Word 嵌入C# Winform 中
- 关于Oracle的高水平线
- Hash知识介绍
- int 与String 的类型转换
- RemoveEventListener无法移除事件监听器的情况
- C51驱动数码管显示0~99
- Data Models(数据模型)
- 计算机,一种工具罢了。
- 丢了两年的博客,居然能找回来。
- 如果感到幸福你就跺跺脚