加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长百科 > 正文

Oracle块,区,段

发布时间:2020-12-30 16:36:45 所属栏目:站长百科 来源:网络整理
导读:数据块( Block ) 数据块 Block 是 Oracle 存储数据信息的最小单位。注意,这里说的是 Oracle 环境下的最小单位。 Oracle 也就是通过数据块来屏蔽不同操作系统存储结构的差异。无论是 Windows 环境,还是 Unix/Linux 环境,他们的操作系统存储结构和方式、

NEXT_EXTENT??? NUMBER????? Y? Size,of the next extent to be allocated to the segment????????????????????????????????????????????????????????????????????

MIN_EXTENTS??? NUMBER????? Y?????????????? Minimum number of extents allowed in the segment?????????????????????????????????????????????????????????????????????????????????????

MAX_EXTENTS??? NUMBER????? Y?????????????? Maximum number of extents allowed in the segment?????????????????????????????????????????????????????????????????????????????????????

PCT_INCREASE?? NUMBER????? Y? Percent by which to increase the size of the next extent to be allocated?????????????????????????????????????????????????????????????

FREELISTS????? NUMBER????? Y? Number of process freelists allocated in this segment????????????????????????????????????????????????????????????????????????????????

FREELIST_GROUPS NUMBER????? Y? Number of freelist groups allocated in this segment??????????????????????????????????????????????????????????????????????????????????

RELATIVE_FNO?? NUMBER????? Y???? Relative number of the file containing the segment header????????????????????????????????????????????????????????????????????????????

BUFFER_POOL??? VARCHAR2(7) Y???? The default buffer pool to be used for segments blocks??????????

segment_type列的comment信息中,可以看出数据段的类型是多样的。任何种类的数据库对象,本质上都是一种数据段。数据表、索引、回滚、聚集这些都是数据段的一种表现形式。同时,数据段是在数据对象创建的时候就已经创建出来,随着对象体积的增大,而不断分配多个extents进行管理。

另一部分信息可以从dba_segments中读出的,就是该数据对象分配的空间大小和数据块、分区个数。使用这个视图,可以方便的获取到指定schema的所有对象大小。

SQL> select owner,sum(bytes)/1024/1024 as vol,sum(blocks) as totalblocks,sum(extents) as totalextents from dba_segments group by owner having wner=‘SYS‘;

OWNER??????????? VOL TOTALBLOCKS TOTALEXTENTS

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

SYS??????????????? 585.5????? 74944??????? 3248

上面查询,说明SYSschema,所占用空间585.5MB,包括74944个数据块和3248个分区。

一个对象创建出来之后,在segment层次上是分配一个分区extent和八个数据块block

有一个问题需要注意,通常我们的数据段是与数据对象相关。一个数据对象对应一个segment。但是,分区表的时候,一个分区要对应一个segment对象。还有就是,segment对象是可以指定存储在那个表空间里,实现存储划分的基础也就在于此。不同类型的segment划分建立在不同的表空间里,才有可能存放在不同的文件中,最后分布在不同的物理存储。

分区实际上就是存在分开存储的可能。一般一个对象是不会跨物理存储进行存放的,分区表是对应的多个segment。所以,分区表分开存储空间是可能的。

表空间tablespace

TableSpace是存储结构中的最高层结构。建立一个表空间的时候,是需要指定存储的文件。一个表空间可以指定多个数据文件,多个文件可以在不同的物理存储上。也就是说,表空间是可以跨物理存储的。但是有一点就是,表空间下一级对象数据段的存储,是不能指定存储在那个文件里的。所以,要想让数据对象访问IO负载均衡,需要指定不同的数据对象在不同的表空间里。这也就是为什么将数据表和索引建立在不同的表空间的原因。

表空间通过v$tablespace进行访问。

SQL> desc v$tablespace;

Name?????????????????????? Type??????? Nullable Default Comments

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

TS#??????????????????????? NUMBER????? Y???????????????????????

NAME?????????????????????? VARCHAR2(30) Y???????????????????????

INCLUDED_IN_DATABASE_BACKUP VARCHAR2(3) Y???????????????????????

BIGFILE??????????????????? VARCHAR2(3) Y???????????????????????

FLASHBACK_ON?????????????? VARCHAR2(3) Y???????????????????????

ENCRYPT_IN_BACKUP????????? VARCHAR2(3) Y?????????????????????

相对于前面的结构视图,表空间视图的结构要简单的多,只是一些描述信息。其中两个参数需要注意一下。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读