段和区:USER_SEGMENTS 和USER_EXTENTS
如第22 章所述,空间以段(segment)为单位分配给对象(如表、群集和索引),它们在物理上对应于在数据库中创建的逻辑对象。可以查询USER_SEGMENTS 视图来查看当前的存储参数和段内有效空间的使用情况。当超出某一存储限制时,USER_SEGMENTS 视图将非常有用,它的列如下面的清单所示。
- SEGMENT_NAME
- PARTITION_NAME
- SEGMENT_TYPE
- SEGMENT_SUBTYPE
- TABLESPACE_NAME
- BYTES
- BLOCKS
- EXTENTS
- INITIAL_EXTENT
- NEXT_EXTENT
- MIN_EXTENTS
- MAX_EXTENTS
- MAX_SIZE
- RETENTION
- MINRETENTION
- PCT_INCREASE
- FREELISTS
- FREELIST_GROUPS
- BUFFER_POOL
段由称为区(extent)的连续区域组成。构成段的区将在USER_EXTENTS 视图中描述。在USER_EXTENTS 视图中,将看到段内每个区的实际大小,这对跟踪next 和pctincrease 设置(在字典托管的表空间中)的变化所产生的影响很有帮助。除了Segment_Name 列、Segment_Type列和Tablespace_Name 列之外,USER_EXTENTS 视图还有3 个新列,即Extent_ID(识别段内的区),Bytes(区的大小,以字节为单位)、Blocks(区的大小,以Oracle 块为单位)。
USER_SEGMENTS 视图和USER_EXTENTS 视图都有“DBA”版本,该版本有助于列出所有者的对象的空间使用情况。DBA_SEGMENTS 视图和DBA_EXTENTS 视图都有一个附加的Owner 列。 如果想要列出在表空间中拥有段的全部所有者,则可以在DBA_SEGMENTS视图中基于Tablespace_ Name 列进行查询,然后列出表空间中段的全部所有者。这些视图都没有“ALL”版本。