`
youngliu_liu
  • 浏览: 8159 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle 表空间设计

 
阅读更多

Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。


常用原则:

1、一般较大的表或索引单独分配一个tablespace。
2、Read only对象或Read mostly对象分成一组,存在对应的tablespace中。
3、若tablespace中的对象皆是read only对象,可将tablespace设置成read only模式,在备份时,read only tablespace只需备份一次。
4、高频率insert的对象分成一组,存在对应的tablespace中。
5、增、删、改的对象分成一组,存在对应的tablespace中。
6、表和索引分别存于不同的tablespace。
7、存于同一个 tablespace中的表(或索引)的extent 大小最好成倍数关系,有利于空间的重利用和减少碎片。


根据以上原则,数据库表空间设计原则如下:

原则上每个schema对应一个表空间和一个相应索引表空间;每个schema下的大表对应一个单独的表空间和索引表空间;对于需要分区的特大表,则每个子分区对应一个单独的表


典型应用一:控制用户所占用的表空间配额

在一些大型的数据库应用中,我们需要控制某个用户或者某一组用户其所占用的磁盘空间。这就好像在文件服务器中,需要为每个用户设置磁盘配额一样,以防止硬盘空间耗竭。所以,在数据库中,我们也需要限制用户所可以使用的磁盘空间大小。为了达到这个目的,我们就可以通过表空间来实现。

我们可以在Oracle数据库中,建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。



典型应用二:控制数据库所占用的磁盘空间

有时候,在Oracle数据库服务器中,可能运行的不止一个服务。除了数据库服务器外,可能还有邮件服务器等应用系统服务器。为此,就需要先对Oracle数据库的磁盘空间作个规划,否则,当多个应用程序服务所占用的磁盘空间都无限增加时,最后可能导致各个服务都因为硬盘空间的耗竭而停止。所以,在同一台服务器上使用多个应用程序服务,我们往往需要先给他们进行磁盘空间的规划和分配。各个服务都不能够超过我们分配给他的最大限额,或者超过后及时的提醒我们。只有这样,才能够避免因为磁盘空间的耗竭而导致各种应用服务的崩溃。



典型应用三:灵活放置表空间,提高数据库的输入输出性能

数据库管理员还可以将不同类型的数据放置到不同的表空间中,这样可以明显提高数据库输入输出性能,有利于数据的备份与恢复等管理工作。因为我们数据库管理员在备份或者恢复数据的时候,可以按表空间来备份数据。如在设计一个大型的分销系统后台数据库的时候,我们可以按省份建立表空间。与浙江省相关的数据文件放置在浙江省的表空间中,北京发生业务记录,则记录在北京这个表空间中。如此,当浙江省的业务数据出现错误的时候,则直接还原浙江省的表空间即可。很明显,这样设计,当某个表空间中的数据出现错误需要恢复的时候,可以避免对其他表空间的影响。

另外,还可以对表空间进行独立备份。当数据库容量比较大的时候,若一下子对整个数据库进行备份,显然会占用比较多的时间。虽然说Oracle数据库支持热备份,但是在备份期间,会占用比较多的系统资源,从而造成数据库性能的下降。为此,当数据库容量比较大的时候,我们就需要进行设置多个表空间,然后规划各个表空间的备份时间,从而可以提高整个数据库的备份效率,降低备份对于数据库正常运行的影响。




典型应用四:大表的排序操作

我们都知道,当表中的记录比较多的时候,对他们进行查询,速度会比较慢。第一次查询成功后,若再对其进行第二次重新排序,仍然需要这么多的时间。为此,我们在数据库设计的时候,针对这种容量比较大的表对象,往往把它放在一个独立的表空间,以提高数据库的性能。




典型应用五:日志文件与数据文件分开放,提高数据库安全性

默认情况下,日志文件与数据文件存放在同一表空间。但是,这对于数据库安全方面来说,不是很好。所以,我们在数据库设计的过程中,往往喜欢把日志文件,特别是重做日志文件,放在一个独立的表空间中,然后把它存放在另外一块硬盘上。如此的话,当存放数据文件的硬盘出现故障时,能够马上通过存放在另一个表空间的重做日志文件,对数据库进行修复,以减少企业因为数据丢失所带来的损失。

当然,表空间的优势还不仅仅这些,企业对于数据库的性能要求越高,或者数据库容量越大,则表空间的优势就会越大。

下面,我们就具体来看看Oracle数据库中表空间的处理方式,看其在性能与安全性方面是否有足够的优势与SQL Server数据库抗衡。

在数据库设计的时候,我们建议数据库管理员按如下顺序设置表空间。




第一步:建立表空间。

在设计数据库的时候,首先需要设计表空间。我们需要考虑,是只建立一个表空间呢,还是需要建立多个表空间,以及各个表空间的存放位置、磁盘限额等等。

到底设计多少个表空间合理,没有统一的说法,这主要根据企业的实际需求去判断。如企业需要对用户进行磁盘限额控制的,则就需要根据用户的数量来设置表空间。当企业的数据容量比较大,而其又对数据库的性能有比较高的要求时,就需要根据不同类型的数据,设置不同的表空间,以提高其输入输出性能。

第二步:建立用户,并制定用户的默认表空间。

在建立用户的时候,我们建议数据库管理员要指定用户的默认表空间。因为我们在利用CREATE语句创建数据库对象,如数据库表的时候,其默认是存储在数据库的当前默认空间。若不指定用户默认表空间的话,则用户每次创建数据库对象的时候,都要指定表空间,显然,这并不是很合理。

另外要注意,不同的表空间有不同的权限控制。用户对于表空间A具有完全控制权限,可能对于表空间B就只有查询权限,甚至连连接的权限的都没有。所以,合理为用户配置表空间的访问权限,也是提高数据库安全性的一个方法。
分享到:
评论

相关推荐

    Oracle 表空间与数据文件

    Oracle 表空间的应用包括数据库设计、数据库优化和数据库维护等。表空间的应用需要了解表空间的逻辑结构和物理结构,了解表空间的分类和特点。表空间的应用还需要了解数据文件的管理,包括数据文件的创建、修改和...

    oracle表空间操作详解

    Oracle 表空间操作详解是数据库管理员在设计和管理 Oracle 数据库时的一项重要任务。通过表空间,可以控制用户对磁盘空间的使用,限制用户可以使用的磁盘空间大小,避免硬盘空间耗竭。 一、表空间的重要性 在大型...

    ORACLE SYSTEM表空间已满解决方案.docx

    ### ORACLE SYSTEM表空间已满解决方案 #### 一、SYSTEM表空间的作用 SYSTEM表空间是Oracle数据库中的一个关键组成部分,在数据库创建时会自动创建。它包含了许多重要的数据库元数据和控制信息,对于数据库的正常...

    Oracle表空间详解

    Oracle数据库中的表空间是存储...总之,理解Oracle表空间的基本概念及其管理方式是数据库设计和优化的关键。通过合理规划和配置表空间,可以确保数据库高效、稳定地运行,同时优化存储资源的利用,提高整体系统性能。

    Oracle数据库表空间设计.pdf

    1、oracle体系结构 2、基本概念 3、表空间类型 4、表空间设计原则 5、表空间的应用 6、表空间的维护 7、表空间的监控 8、表空间相关数据字典

    Oracle表空间介绍

    #### 二、表空间设计的重要性 表空间的设计理念是Oracle数据库的一大特色。相比于其他数据库系统(如SQL Server),Oracle通过引入表空间的概念,实现了更为灵活高效的数据管理机制。表空间的设计不仅可以帮助控制...

    oracle表空间容量查询

    4. **优化数据存储**:合理设计表结构和索引,减少不必要的冗余数据,可以有效节省存储空间。 5. **使用压缩技术**:Oracle提供了行级压缩、表级压缩等多种压缩选项,可以在不影响性能的情况下减少存储需求。 #### ...

    powerdesigner为表设置表空间

    在 Oracle 数据库设计过程中,合理地规划和使用表空间对于提高数据库性能、优化磁盘空间使用率至关重要。例如,可以将经常访问的数据放在高性能磁盘上的表空间中,而将不常用的数据存放在较低性能的磁盘上,以此来...

    Oracle数据库用户、表、表空间之间关系.doc

    在Oracle的逻辑结构中,表空间是最高级别的逻辑单位,它由一个或多个数据文件组成。表空间可以分为在线和离线状态,SYSTEM表空间是系统默认的,用于存储系统数据字典、程序单元等,也可用于用户数据。用户可以使用一...

    Oracle表空间和数据文件的管理.docx

    ### Oracle表空间和数据文件的管理 #### 6.1 Oracle引入逻辑结构的目的 Oracle数据库管理系统采用了一种独特的设计思路,即通过引入一系列逻辑结构来处理数据存储问题,而不是直接操作底层的数据文件。这种设计的...

    oracle数据库_实例_用户_表空间之间的关系

    Oracle 数据库实例用户表空间之间的关系 Oracle 数据库实例用户表空间之间的关系是 Oracle 数据库管理系统...Oracle 数据库实例用户表空间之间的关系是复杂的,但了解这些关系对于数据库的设计、管理和优化至关重要。

    Oracle表空间拓展方法

    ### Oracle表空间拓展方法 #### 一、理解Oracle表空间 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据库中的数据。每个表空间由一个或多个数据文件组成,这些数据文件存储在物理磁盘上。随着业务的发展,...

    Oracle压缩表表空间

    从 Oracle 9iR2 开始,Oracle 提供了表/表空间压缩技术,以减少磁盘开销,节省空间,并在某些情况下提高查询性能。 表压缩的工作原理是删除在数据库表中发现的重复数据值,以节省空间。压缩是在数据库的数据块级别...

    关于oracle的表空间,分区表,以及索引的总结

    ### Oracle的表空间、分区表及索引的深入解析 #### 表空间(Tablespace)在Oracle中的作用与管理 表空间是Oracle数据库中的逻辑存储单元,它将数据组织成可管理的部分,允许数据库管理员更好地控制数据存储和性能...

    PowerDesigner优化Oracle库表设计的若干方法

    ### PowerDesigner优化Oracle库表设计的若干方法 在IT领域,数据库设计的合理性和效率直接影响着系统的整体性能和用户体验。特别是在Oracle数据库环境下,一个精心设计的数据库架构能够显著提升数据处理速度,减少...

    优化Oracle库表设计的若干方法

    因此,优化Oracle库表设计是提升程序性能的关键。 首先,我们需要考虑如何有效地表达业务数据。例如,员工的多个Email地址,可以采用多种方式处理:在一个表中设立多个字段,创建子表,或者在一个字段中以逗号分隔...

    oracle创建表空间、表、主键、外键、序列

    在Oracle数据库管理系统中,表空间(Tablespace)是存储数据对象(如表、索引、视图等)的逻辑单位。创建表空间是数据库管理的基础,因为它为数据提供了存储空间。下面将详细介绍如何创建表空间以及如何在Oracle中...

    ORACLE设计表时

    本文将重点探讨在Oracle设计表时,不同数据类型字段的默认长度,包括Integer、Long以及Date类型。 ### 1. Integer 类型 在Oracle中,Integer 类型用于存储整数值。根据具体情况,可以选择不同的整数类型来满足不同...

    如何解决Oracle8i数据库临时表空间满的问题.pdf

    从标题和描述中,我们可以了解到该文档主要讲述了Oracle8i数据库临时表空间满时的解决方案。Oracle8i是甲骨文公司推出的一个关系型数据库管理系统,它是Oracle数据库的一个版本,在业界有着广泛的应用。临时表空间...

    oracle表空间

    无论是永久表空间还是临时表空间,在设计和实现Oracle数据库时都扮演着至关重要的角色。合理规划和管理表空间不仅可以提高数据库性能,还能有效利用存储资源。希望本文能够帮助您更好地理解和应用Oracle表空间的相关...

Global site tag (gtag.js) - Google Analytics