读书人

Oracle目录的新认识

发布时间: 2012-11-20 09:55:43 作者: rapoo

Oracle索引的新认识

首先,Oracle的索引有。

普通索引B*树,BitMap索引,函数索引,组合索引,反转索引。

?

那么这里主要说一下常用的索引。

B*树索引就是普通索引。

使用方式如下:

--(1)查看索引段中extent的数量:select segment_name, count(*)  from dba_extents where segment_type = 'INDEX'   and owner = UPPER('&owner') --schema 名 group by segment_name--(2)查看索引段中的block的数量:select segment_name, sum(blocks)  from dba_extents where segment_name = 'SYS_C005736' --对象名 group by segment_name; 

?

Oracle为数据库中的所有数据分配逻辑结构空间。
数据库空间的单位是数据块(block)、范围(extent)和段(segment)。

?

Oracle数据块(block)是Oracle使用和分配的最小存储单位。
它是由数据库建立时设置的DB_BLOCK_SIZE决定的。一旦数据库生成了,数据块的大小不能改变。
要想改变只能重新建立数据库。(在Oracle9i中有一些不同,不过这不在本文讨论的范围内。)

?

Extent是由一组连续的block组成的。
一个或多个extent组成一个segment。
当一个segment中的所有空间被用完时,Oracle为它分配一个新的extent。

Segment是由一个或多个extent组成的。它包含某表空间中特定逻辑存储结构的所有数据。

一个段中的extent可以是不连续的,甚至可以在不同的数据文件中。
一个object只能对应于一个逻辑存储的segment,
我们通过查看该segment中的extent,可以看出相应object的存储情况。

?

面对一些海量数据表,选择适合的索引可以降低存储大小,降低成本,也能够提高查询效率。

读书人网 >其他数据库

热点推荐