日期:2014-05-16  浏览次数:20458 次

高水位(High Water Mark)的概念及高水位问题的解决

1.??? 背景

随着表中数据的不断增长,表的高水位也被不断的推高。当高水位达到一定程度之后,会对该表上的SQL查询效率产生负面影响,因此需要采取有效措施降低高水位。有时候即便是表中数据很少,一条全表扫描的sql仍然很慢,有时候表的数据很少,但是仍然占用很多空间,这些都是高水位在作怪。

?

2.??? 准备知识

Oracle 的逻辑存储结构可简单表示为:表空间——>——>——>块。

2.1.? 块(block

块(block)是oracle粒度最小的存储单位,现在标准的块大小是8K,由参数DB_BLOCK_SIZE指定。ORACLE每一次I/O操作也是按块来操作的,也就是说当ORACLE从数据文件读数据时,是读取多少个块,而不是多少行。

SQL> show parameter db_block_size

NAME???????????????? TYPE??????? VALUE

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

db_block_size?????? integer???? 8192

2.2.? 区(extent

区(extent)是由一系列相邻的块而组成,这也是ORACLE空间分配的基本单位,<