- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章oracle
* 表空间和数据文件 表空间的规化是非常重要的。本节的主要内容,是表空间的管理。 表空间和数据文件 表空间,顾名思义,就是存放表的空间。其实存放在表空间中的,不只有表,还有索引等其他的数据库对象。ORACLE中,所有的用户数据,都是存放在各个表空间中的。但表空间本身并没有空间,每个表空间,都会包含一到多个数据文件。表空间只是这些数据文件的一个总称。而表空间中的空间,就是指的这些数据文件中的空间。 表空间用来分配用户数据到数据文件。如果有A表空间,他包括了1、2、3三个数据文件,另有B表空间,包括4、5两个数据文件。现在,如果你想将你的表存贮在4、5数据文件中,你可将表建立在B表空间中。但是表具体会在4或5的哪一个数据文件中,这由ORACLE来分配。DBA无法自己指定。通常,ORACLE会在4和5中,均运的分配数据。这一点我们已后可以做一个练习,来证明此点。我们要知道,表空间在一定程度上,决定了我们的表在哪个数据文件中,或者说,表空间决定了表在哪块磁盘上。 表空间和数据文件 我们应该按照表的用途、操作特点,将表放在不同的表空间中。从而让不同类型的表分布在不同的磁盘中。在构建一个数据库系统时,表空间的规化是十分重要的。 至于我们该如何的规化表空间,这没有一个通用的法则。很多时候,适用于A企业数据库的表空间规化,在B企业中,却可能成为性能或可扩展性的瓶径。要想构化好表空间,一定要了解的各种类型的表空间的特点,这就是我们下面要将的主要内容。 除此之外,我们还要对构建在数据库之上的应用程序,有一定的了解。这样才能根据实际需要,设计出规化良好的表空间。 下面我们先从表空间和数据文件的关系开始。 表空间和数据文件 总之,表空间是建立在逻辑层面上的一种概念。他只存在在ORACLE的控制文件、数据字典中。在控制文件、数据字典中,记录有一个表空间包含了哪些数据文件。这就是表空间了。只要在控制文件、数据字典中,把某个表空间相关的信息删除掉,就算是他的数据文件还在,但表空间已经不存在了。 数据文件是磁盘上的文件,oracle在建立数据文件时,就要为数据文件分配一大块磁盘空间,这叫文件的初始大小。一个表空间所有文件的初始大小合起来,就是表空间的初始大小。如果数据文件中空间不够了,以后还可以根据需要扩充。 数据文件属于表空间,一个表空间可以包含一到多个数据文件。一个数据文件只能属于一个表空间。 表空间的类型--系统表空间和非系统表空间 根据存储内容的不同,有两大种类型的表空间,一个是system表空间,也就是系统表空间,另一类是非系统表空间。 非系统表空间存储用户的表,索引等数据,系统表空间存储数据库中所有元数据,再来复习下什么是元数据呢?也就是我们前面已经反复提到的--数据字典。 (比如表的定义,数据库有哪些用户,用户的名字和密码,有哪些表空间,这些表空间都包含哪些数据文件等等。。。,还有我们所编写的存储过程也算是元数据,这些都是元数据),oracle?把元数据也存储在表中,用来存放他们的表就叫做数据字典表,简称数据字典。所有的数据字典,还有动态性能视图,都存放在系统表空间中。 表空间的类型--字典管理与本地管理 从空间的管理方式上来说,表空间又分做本地管理和字典管理两种类型。表空间内部对于空间的管理是以区为单位的。空间的分配和释放至少以一个区为单位。本地管理和字典管理的不同,主要体现在对区的管理方式上。 再来复习一下ORACLE的逻辑结构,首先是表空间,一个表空间中有多个段,一个段有多个区,一个区有多个连续的块。注意,一个区是由多个连续的块组成的。 块是ORACLE最基本的读写单位,但区,在为段为分配空间时,最基本的单位是区。 表空间以什么样的方式组织区。在表空间中的某个段,请求分配一个(或多个)区时,以什么样的方式查找可用区。对区的管理方式的不同,产生了两种类型的表空间:字典管理和本地管理。其实我觉得,字典管理应该叫做区的字典管理,而本地管理,则是区的本地管理。 下面我们先从字典管理开始。 表空间的类型--字典管理 字典管理现在已经不再使用了,简单介绍下,他用一个数据字典表来记录每个表空间的区的使用。如果有某一个表想分配区,先在数据字典表中查找空闲区,然后再更改这个数据字典表,将表新占用的区的信息写进这个数据字典中,每个表或索引等数据库对象在分配或释放区时都需要查看或修改存储区信息的数据字典。这会引起数据字典的争用。比如说一个酒店有很多房间,在前台记录有哪个房间有客人哪个房间没有。现在有新的顾客要住店,他需要到前台先查阅哪个房间是空闲的,然后在前台进行登记,将本房间改为非空闲,他就可以入住了,但是当客人比较多时,大家都涌向前台那里去询问是否有空闲空间,空闲空间在哪。。我要登
文档评论(0)