表空间与裸设备

来源:百度文库 编辑:神马文学网 时间:2024/03/29 00:12:37

表空间是一块逻辑磁盘空间,用来存放数据库中的数据,可以建立在裸设备、操作系统文件、目录(只能在DB2数据库系统中使用)上。在创建数据库对象时,我们可以指定表空间,使对象中的数据只能存储在这个表空间中,从而可以有效地控制数据的存放位置。如果不指定表空间,系统就自动为它设定一个表空间,该表空间一般就是缺省表空间。有关表空间的进一步描述,可以参看第4章。

裸设备是一块物理磁盘空间,用户不能直接访问。对它的数据读写,需要通过操作系统底层调用。和操作系统文件相比,对裸设备的管理和维护不是很方便。然而也正是由于这一点,使用裸设备会更加安全、可靠,数据库系统不会轻易遭到破坏。在WINDOWS平台上,裸设备就是没有被格式化的磁盘分区。

如果表空间使用操作系统文件创建,在读取数据时,数据库系统要将数据读取请求交给操作系统,由操作系统将文件中的数据首先读入自己的内存缓冲区,然后再交给数据库系统处理,也就是从操作系统的内存缓冲区移动到数据库系统使用的内存缓冲区。在写数据到磁盘时,数据库系统首先将数据交给操作系统,也即从数据库系统的内存缓冲区移动到操作系统的内存缓冲区,最后由操作系统完成磁盘的写操作。

如果表空间建立在裸设备上,数据库系统对磁盘中数据的读取,就绕过操作系统,使用操作系统底层调用,直接存取磁盘。和操作系统文件相比,对裸设备的数据读取不需要操作系统的内存数据缓冲,因此加快了I/O处理速度。 

在区之间就是段概念了.段是由连接逻辑上连续区组成的。段才是真正存储数据的逻辑单元。可以这么说Oracle 块是操作系统存储单元一个抽像,而区呢?区应该是在数据块基础进行进一步抽像的结果,而种抽像之后,完全应该完成了存储数据的划分。至于段呢完全是抽像概念进行实体化一种手段。下面我们将看到段类型概念:数据段、索引段、临时段、永久段.

1.         数据段:每个非聚簇表都存储都有一个数据段,表中所有数据都存储在数据段的区之中.例如分区表,每一个分区都有一个分区段。

2.         索引段:每一个索引都有一个索引段用来存储索引的数据。例如每一个分区索引都有一个分区索引。

3.         临时段:当oracle运行SQL需要一个临时段来完成一个操作的时候,就是临时段就会自动被创建。当操作完成时候,一个临时都会被返回给Oracle心以备给其它用户使用。

4.         回滚段:如果数据库运行自动回滚段管理方式时候,这个时候Oracle服务就会使用回滚表空间来管理回滚段。Oracle建议采用自动回滚管理的方式进行回滚段管理。在早些Oracle版本中,Oracle利回滚段来保存回信息。