全部博文(1015)
分类:
2009-11-27 11:03:24
表空间是一块逻辑磁盘空间,用来存放数据库中的数据,可以建立在裸设备、操作系统文件、目录(只能在DB2数据库系统中使用)上。在创建数据库对象时,我们可以指定表空间,使对象中的数据只能存储在这个表空间中,从而可以有效地控制数据的存放位置。如果不指定表空间,系统就自动为它设定一个表空间,该表空间一般就是缺省表空间。有关表空间的进一步描述,可以参看第4章。
裸设备是一块物理磁盘空间,用户不能直接访问。对它的数据读写,需要通过操作系统底层调用。和操作系统文件相比,对裸设备的管理和维护不是很方便。然而也正是由于这一点,使用裸设备会更加安全、可靠,数据库系统不会轻易遭到破坏。在WINDOWS平台上,裸设备就是没有被格式化的磁盘分区。
如果表空间使用操作系统文件创建,在读取数据时,数据库系统要将数据读取请求交给操作系统,由操作系统将文件中的数据首先读入自己的内存缓冲区,然后再交给数据库系统处理,也就是从操作系统的内存缓冲区移动到数据库系统使用的内存缓冲区。在写数据到磁盘时,数据库系统首先将数据交给操作系统,也即从数据库系统的内存缓冲区移动到操作系统的内存缓冲区,最后由操作系统完成磁盘的写操作。
如果表空间建立在裸设备上,数据库系统对磁盘中数据的读取,就绕过操作系统,使用操作系统底层调用,直接存取磁盘。和操作系统文件相比,对裸设备的数据读取不需要操作系统的内存数据缓冲,因此加快了I/O处理速度。