Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。
典型应用一:控制用户所占用的表空间配额
在一些大型的数据库应用中,我们需要控制某个用户或者某一组用户其所占用的磁盘空间。这就好像在文件服务器中,需要为每个用户设置磁盘配额一样,以防止硬盘空间耗竭。所以,在数据库中,我们也需要限制用户所可以使用的磁盘空间大小。为了达到这个目的,我们就可以通过表空间来实现。
我们可以在Oracle数据库中,建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。
典型应用二:控制数据库所占用的磁盘空间
有时候,在Oracle数据库服务器中,可能运行的不止一个服务。除了数据库服务器外,可能还有邮件服务器等应用系统服务器。为此,就需要先对Oracle数据库的磁盘空间作个规划,否则,当多个应用程序服务所占用的磁盘空间都无限增加时,最后可能导致各个服务都因为硬盘空间的耗竭而停止。所以,在同一台服务器上使用多个应用程序服务,我们往往需要先给他们进行磁盘空间的规划和分配。各个服务都不能够超过我们分配给他的最大限额,或者超过后及时的提醒我们。只有这样,才能够避免因为磁盘空间的耗竭而导致各种应用服务的崩溃。
典型应用三:灵活放置表空间,提高数据库的输入输出性能
数据库管理员还可以将不同类型的数据放置到不同的表空间中,这样可以明显提高数据库输入输出性能,有利于数据的备份与恢复等管理工作。因为我们数据库管理员在备份或者恢复数据的时候,可以按表空间来备份数据。如在设计一个大型的分销系统后台数据库的时候,我们可以按省份建立表空间。与浙江省相关的数据文件放置在浙江省的表空间中,北京发生业务记录,则记录在北京这个表空间中。如此,当浙江省的业务数据出现错误的时候,则直接还原浙江省的表空间即可。很明显,这样设计,当某个表空间中的数据出现错误需要恢复的时候,可以避免对其他表空间的影响。
另外,还可以对表空间进行独立备份。当数据库容量比较大的时候,若一下子对整个数据库进行备份,显然会占用比较多的时间。虽然说Oracle数据库支持热备份,但是在备份期间,会占用比较多的系统资源,从而造成数据库性能的下降。为此,当数据库容量比较大的时候,我们就需要进行设置多个表空间,然后规划各个表空间的备份时间,从而可以提高整个数据库的备份效率,降低备份对于数据库正常运行的影响。
典型应用四:大表的排序操作
我们都知道,当表中的记录比较多的时候,对他们进行查询,速度会比较慢。第一次查询成功后,若再对其进行第二次重新排序,仍然需要这么多的时间。为此,我们在数据库设计的时候,针对这种容量比较大的表对象,往往把它放在一个独立的表空间,以提高数据库的性能。
典型应用五:日志文件与数据文件分开放,提高数据库安全性
默认情况下,日志文件与数据文件存放在同一表空间。但是,这对于数据库安全方面来说,不是很好。所以,我们在数据库设计的过程中,往往喜欢把日志文件,特别是重做日志文件,放在一个独立的表空间中,然后把它存放在另外一块硬盘上。如此的话,当存放数据文件的硬盘出现故障时,能够马上通过存放在另一个表空间的重做日志文件,对数据库进行修复,以减少企业因为数据丢失所带来的损失。
当然,表空间的优势还不仅仅这些,企业对于数据库的性能要求越高,或者数据库容量越大,则表空间的优势就会越大。
下面,我们就具体来看看Oracle数据库中表空间的处理方式,看其在性能与安全性方面是否有足够的优势与SQL Server数据库抗衡。
在数据库设计的时候,我们建议数据库管理员按如下顺序设置表空间。
第一步:建立表空间。
在设计数据库的时候,首先需要设计表空间。我们需要考虑,是只建立一个表空间呢,还是需要建立多个表空间,以及各个表空间的存放位置、磁盘限额等等。
到底设计多少个表空间合理,没有统一的说法,这主要根据企业的实际需求去判断。如企业需要对用户进行磁盘限额控制的,则就需要根据用户的数量来设置表空间。当企业的数据容量比较大,而其又对数据库的性能有比较高的要求时,就需要根据不同类型的数据,设置不同的表空间,以提高其输入输出性能。
第二步:建立用户,并制定用户的默认表空间。
在建立用户的时候,我们建议数据库管理员要指定用户的默认表空间。因为我们在利用CREATE语句创建数据库对象,如数据库表的时候,其默认是存储在数据库的当前默认空间。若不指定用户默认表空间的话,则用户每次创建数据库对象的时候,都要指定表空间,显然,这并不是很合理。
另外要注意,不同的表空间有不同的权限控制。用户对于表空间A具有完全控制权限,可能对于表空间B就只有查询权限,甚至连连接的权限的都没有。所以,合理为用户配置表空间的访问权限,也是提高数据库安全性的一个方法。
来源于:http://database.51cto.com/art/200905/123847.htm
分享到:
相关推荐
Oracle API,全称为Oracle Application Programming Interface,是Oracle数据库系统提供的一系列函数和过程,...此外,了解并善用Oracle的优化工具和性能监控功能,有助于识别和解决性能瓶颈,提升系统的整体运行效率。
【Oracle数据库优化】是数据库管理中的重要环节,旨在提升数据库的运行效率,减少资源消耗,提高用户访问速度。本文将从系统级优化、索引管理、SQL查询优化、表设计和其它策略以及Oracle存储过程的编写与优化五个...
Oracle数据库在应用开发中扮演着至关重要的角色,其性能和安全性直接影响到...以上是Oracle应用开发中的一些关键性能和安全建议,实践中应结合具体业务场景灵活运用,持续优化数据库性能,确保系统的稳定和高效运行。
通过熟练掌握ORDER BY语法,合理创建索引,以及善用各种优化技术,我们可以有效地管理和操作Oracle数据库中的数据,提高查询效率和数据分析能力。在实际工作中,结合Oracle提供的工具,可以进一步提升开发和管理的...
- 管理:着重于数据库的维护和优化,包括性能监控、备份恢复、安全性设置等,要求深入理解Oracle数据库原理。 2. **学习方法**: - 理论结合实践:阅读书籍,深入理解概念,然后通过实验来验证和巩固知识。 - ...
本指南将深入探讨SQL的使用和优化技巧,帮助你提升数据库操作的效率。 一、SQL基础概念 1. 数据库:存储数据的仓库,通常分为关系型数据库和非关系型数据库。 2. 表:数据库中的数据结构,由列(字段)和行(记录)...
6. **可靠性提升**:通过改进的复制功能、故障恢复机制和更高的可用性设计,MySQL 8.0确保了企业级应用的稳定运行,降低了数据丢失的风险。 MySQL企业版则提供了额外的支持和服务,包括增强的安全性、高级监控工具...
15.5.4 善用数据库的存储过程 567 15.5.5 SqlDataRead和Dataset的选择 567 15.5.6 ExecuteNonQuery和 ExecuteScalar的选择 568 15.5.7 数据的绑定DataBinder 568 15.5.8 使用DataReader的注意事项 568 15.5.9 ...
15.5.4 善用数据库的存储过程 567 15.5.5 SqlDataRead和Dataset的选择 567 15.5.6 ExecuteNonQuery和 ExecuteScalar的选择 568 15.5.7 数据的绑定DataBinder 568 15.5.8 使用DataReader的注意事项 568 15.5.9 ...