Oracle存储结构总结
今天我们总结一下ORACLE的存储结构,跟其他存储一样,ORACLE数据文件也需要存储在文件中,但是为了方便管理,ORACLE为我们做了比较好理解的逻辑结构,通过逻辑结构来免除直接与底层的存储直接接触。ORACLE为我们提供了表空间,表空间是数据库的逻辑组成部分。从物理上讲,数据是存放在数据文件中的,而从逻辑上讲,数据是存放在表空间中的,一个表空间有若干个数据文件组成。把oracle数据库看作一个大楼(数据库),表空间可以看作这个楼房的各个楼层(表空间),每个楼层又有单独的房间(数据文件),单独的房间可以住人或者是储物(表结构),表空间和数据文件是可以自由分配的。用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。
数据库的逻辑结构 Oracle中的逻辑结构包括:表空间、段、区、块。 数据库是由表空间构成,而表空间由段构成,段又由区构成,最后区又由Oracle块构成。这样分级是为了提高数据库的效率。数据库就好比一个国家,为了方便管理,我们将国家分为省,省又分为市,依次类推。Oracle也是如此,表空间的设计大大提高了数据库的效率,表空间能:1)控制数据库占用的磁盘空间大小;2)dba可以将不同的数据类型部署到不同的位置,这样有利于提高I/O性能,同时利于备份和恢复等操作。 数据段segment 区extent 数据块(Block) 数据块Block是Oracle存储数据信息的最小单位。注意,这里说的是Oracle环境下的最小单位。Oracle也就是通过数据块来屏蔽不同操作系统存储结构的差异。无论是Windows环境,还是Unix/Linux环境,他们的操作系统存储结构和方式、甚至字符排列的方式都是不同的。Oracle利用数据块将这些差异加以屏蔽,全部数据操作采用对Oracle块的操作,相当于是一个层次的抽象。 Oracle所有对数据的操作和空间分配,实际上都是针对数据块Block的操作。我们从数据表中搜索出一行,实际中Oracle就会从内存缓冲区(或者硬盘)中读取到该行所在的数据块,再返回这数据块上的指定数据行。Oracle无论是在缓冲区,还是在硬盘,进行数据操作的虽小单位也就是数据块。数据块是有大小的,在一个数据库建立的时候,通过参数进行设置。注意,在Oracle数据库参数中,只有数据块大小的参数是建库之后不能进行修改的。数据块的大小,在一个数据库中可以支持多个,但是一般没有太大的意义,会给管理和调试带来一定的负担。数据块的大小是通过kb字节个数来指定的,默认为8KB。相关参数为db_block_size,下面是查看block大小的语句。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |