0

0

Oracle 高水位线详解

php中文网

php中文网

发布时间:2016-06-07 17:27:39

|

1341人浏览过

|

来源于php中文网

原创

所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上

一、什么是水线(high water mark)?
 
所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称为"high water mark"或hwm。这个hwm是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。hwm通常增长的幅度为一次5个数据块,原则上hwm只会增大,不会缩小,即使将表中的数据全部删除,hwm还是为原值,由于这个特点,使hwm很象一个水库的历史最高水位,这也就是hwm的原始含义,当然不能说一个水库没水了,就说该水库的历史最高水位为0。但是如果我们在表上使用了truncate命令,则该表的hwm会被重新置为0。
 
         
 
二、hwm数据库的操作有如下影响:
 
a) 全表扫描通常要读出直到hwm标记的所有的属于该表数据库块,即使该表中没有任何数据。
 
b) 即使hwm以下有空闲的数据库块,,键入在插入数据时使用了append关键字,则在插入时使用hwm以上的数据块,此时hwm会自动增大。
 
               

三、如何知道一个表的HWM?
 
a) 首先对表进行分析:
 
ANALYZE TABLE ESTIMATE/COMPUTE STATISTICS;
 
b) SELECT blocks, empty_blocks, num_rows
 
FROM user_tables
 
WHERE table_name = ;
 
说明:
 
BLOCKS 列代表该表中曾经使用过得数据库块的数目,即水线。
 
EMPTY_BLOCKS 代表分配给该表,但是在水线以上的数据库块,即从来没有使用的数据块。
 
           
 
让我们以一个有28672行的BIG_EMP1表为例进行说明:
 
1) SQL> SELECT segment_name, segment_type, blocks
 
FROM dba_segments
 
WHERE segment_name='BIG_EMP1';
 
SEGMENT_NAME      SEGMENT_TYPE    BLOCKS   
 
-----------------  --------------  ---------
 
BIG_EMP1          TABLE          1024     
 
1 row selected.           
 
               
 
2) SQL> ANALYZE TABLE big_emp1 ESTIMATE STATISTICS;
 
Statement processed.
 
           

3) SQL> SELECT table_name,num_rows,blocks,empty_blocks
 
FROM user_tables
 
WHERE table_name='BIG_EMP1';
 
TABLE_NAME  NUM_ROWS  BLOCKS    EMPTY_BLOCKS
 
----------  --------  -------    -------------
 
BIG_EMP1    28672    700        323
 
1 row selected.
 
注意:
 
BLOCKS + EMPTY_BLOCKS (700+323=1023)比DBA_SEGMENTS.BLOCKS少1个数据库块,这是因为有一个数据库块被保留用作segment header。DBA_SEGMENTS.BLOCKS 表示分配给这个表的所有的数据库块的数目。USER_TABLES.BLOCKS表示已经使用过的数据库块的数目。

linux

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
oracle基础视频教程
oracle基础视频教程

共31课时 | 6.5万人学习

从零开始学习Oracle
从零开始学习Oracle

共29课时 | 4.6万人学习

前端零基础到vue实战课程
前端零基础到vue实战课程

共214课时 | 22.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号