`
阅读更多

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第一步:建立表空间。

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

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

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

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

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

分享到:
评论

相关推荐

    DB2表和表空间状态详解

    ### DB2表和表空间状态详解 #### 引言 IBM DB2 Universal Database(DB2 UDB)作为一款先进的数据库管理系统,提供了丰富的功能以确保数据的完整性和安全性。其中一个关键特性便是通过表和表空间的状态控制,实现...

    \Oracle 表空间与数据文件

    通过以上内容,我们详细了解了Oracle中的表空间与数据文件的概念、分类以及它们在Oracle数据库存储结构中的作用,并学习了如何通过SQL查询来查看和管理这些表空间和数据文件。这对于管理和优化Oracle数据库的性能至...

    Oracle临时表空间不足和批处理缓慢问题探讨.pdf

    3. AWR 报告的作用:AWR 报告可以显示占用临时表空间最高的 SQL 语句,但可能不准确体现出占用临时表空间最高的 SQL 语句。 4. 使用 shell 脚本来记录和分析临时表空间使用情况:可以编写 shell 脚本来记录使用临时...

    db2裸设备扩容表空间

    首先,我们需要理解表空间在DB2中的作用。表空间是DB2数据库中逻辑存储的容器,用于组织和管理数据库对象如表、索引等。在裸设备上创建的表空间,数据直接写入裸设备,减少了文件系统作为中间层带来的开销。 扩容裸...

    oracle表空间详解

    临时表空间的重要作用是数据排序。当用户执行了诸如 Order by 等命令后,服务器需要对所选取数据进行排序,如果数据很大,内存的排序区可能装不下太大数据,就需要把一些中间的排序结果写在硬盘的临时表空间中。 * ...

    修改表空间大小

    一、表空间的作用与类型 1. 数据存储:表空间是数据库中数据和索引的逻辑容器,不同类型的数据库对象可以被分配到不同的表空间中。 2. 资源管理:通过分配不同的表空间,数据库管理员可以控制用户和应用程序的数据...

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

    #### 一、SYSTEM表空间的作用 SYSTEM表空间是Oracle数据库中的一个关键组成部分,在数据库创建时会自动创建。它包含了许多重要的数据库元数据和控制信息,对于数据库的正常运行至关重要。具体来说,SYSTEM表空间...

    释放TEMP表空间占用硬盘空间

    标题与描述概述的知识点主要涉及Oracle数据库中临时表空间(TEMP表空间)的管理与优化,特别是当TEMP表空间占用过多硬盘空间时的处理方法。...关键在于理解临时表空间的作用,合理规划其配置,并适时进行维护与调整。

    Oracle RAC增加ASM盘,创建表空间

    Oracle RAC 增加 ASM 盘, 创建表空间 Oracle RAC 是一种高可用、高性能的数据库解决方案,通过将多个服务器节点组成一个集群,提供了高可用性和高性能的数据库服务。在 Oracle RAC 中,ASM(Automated Storage ...

    Oracle 表空间建立方法

    #### 一、Oracle 表空间概念与作用 在Oracle数据库管理系统中,表空间是逻辑存储单元的基本单位。每个数据库至少包含一个表空间,默认情况下为`SYSTEM`表空间。表空间由一个或多个数据文件组成,用于存储用户数据、...

    oracle表空间学习整理,包括常用sql

    本篇文章将深入探讨Oracle表空间的概念、作用、创建方法以及常用的SQL语句,帮助你更好地理解和管理数据库资源。 一、Oracle表空间概念 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据库对象,如表、索引和...

    Oracle数据库_实例_用户_表空间之间的关系.doc

    表空间的主要作用是提供数据存储的逻辑划分,便于管理数据。 - **数据文件**:数据文件是表空间的物理表示,数据文件的扩展名通常为`.dbf`或`.ora`。数据文件不能独立存在,必须归属于某个表空间。 - **表空间的...

    oracle 收缩undo表空间

    ### Oracle收缩Undo表空间 #### 一、概述 在Oracle数据库管理中,有时需要对Undo表空间进行管理和优化。特别是当Undo表空间因为历史数据积累而变得过大时,可能会影响数据库性能。本文将详细介绍如何通过新建一个...

    ORACLE表空间 状态查询语句

    ### ORACLE表空间状态查询语句详解 在Oracle数据库管理中,了解表空间的状态对于确保数据的可用性和系统的稳定性至关重要。本文将详细解析一个用于查询Oracle 10g表空间状态的SQL语句,并深入探讨其中涉及的关键...

    不让临时表空间影响ORACLE数据库性能

    当处理大量数据或者运行复杂SQL查询时,临时表空间的作用尤为关键。然而,如果不正确地管理和使用临时表空间,可能会对数据库性能产生负面影响。本文将深入探讨临时表空间与数据库性能的关系,以及如何避免其潜在的...

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

    #### 表空间(Tablespace)在Oracle中的作用与管理 表空间是Oracle数据库中的逻辑存储单元,它将数据组织成可管理的部分,允许数据库管理员更好地控制数据存储和性能。表空间可以包含多个数据文件(Data Files),...

    Oracle表空间操作命令

    这段SQL语句的作用是创建一个名为“DATA”的表空间,并指定数据文件的位置、初始大小、自动扩展选项以及最大大小。 ### 调整表空间大小 #### 调整数据文件大小 - **调整大小**: ```sql ALTER DATABASE DATA...

    oracle数据库、表空间及数据文件之间的关系

    ### Oracle数据库、表空间及数据文件之间的关系 在Oracle数据库管理系统的架构中,数据库、表空间与数据文件之间存在着紧密的联系。理解这些组件之间的相互作用对于有效地管理和维护Oracle数据库至关重要。 #### ...

    oracle误删除表空间后恢复

    ### 表空间在Oracle数据库中的作用 表空间是Oracle数据库中存储数据的基本单位,每个表空间由一个或多个数据文件组成。表空间可以包含各种类型的数据对象,如表、索引、聚簇等。因此,误删除表空间可能会导致数据...

Global site tag (gtag.js) - Google Analytics