表空间是oracle内部定义的一个概念,是为了统一oracle物理和逻辑
上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个磁盘上数
据文件构成的(至少1对1,可以1对多),从逻辑上来说一个表空间是由具体的一个或
多个用户模式下的表,索引等等里面的数据所构成的.
因此从用户的角度来看是不应该看到磁盘上物理的数据文件的,其从小到大的视角是
这样的关系:
字段值 --> 记录值 --> 表数据 --> 用户 --> 表空间 --> ORACLE
而从一个ORACLE DBA的视角来看应是这样的关系:
数据文件 --> 表空间 --> ORACLE

综合一下,也就是说在ORACLE中表不可能单独存在,一定隶属于某一个用户,而某一
用户的数据必定存在于某个表空间中.
SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。
  典型应用一:控制用户所占用的表空间配额。
  在一些大型的数据库应用中,我们需要控制某个用户或者某一组用户其所占用的磁盘空间。这就好像在文件服务器中,需要为每个用户设置磁盘配额一样,以防止硬盘空间耗竭。所以,在数据库中,我们也需要限制用户所可以使用的磁盘空间大小。为了达到这个目的,我们就可以通过表空间来实现。
  我们可以在Oracle数据库中,建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。
  典型应用二:控制数据库所占用的磁盘空间。
  有时候,在Oracle数据库服务器中,可能运行的不止一个服务。除了数据库服务器外,可能还有邮件服务器等应用系统服务器。为此,就需要先对Oracle数据库的磁盘空间作个规划,否则,当多个应用程序服务所占用的磁盘空间都无限增加时,最后可能导致各个服务都因为硬盘空间的耗竭而停止。所以,在同一台服务器上使用多个应用程序服务,我们往往需要先给他们进行磁盘空间的规划和分配。各个服务都不能够超过我们分配给他的最大限额,或者超过后及时的提醒我们。只有这样,才能够避免因为磁盘空间的耗竭而导致各种应用服务的崩溃。
  典型应用三:灵活放置表空间,提高数据库的输入输出性能。
  数据库管理员还可以将不同类型的数据放置到不同的表空间中,这样可以明显提高数据库输入输出性能,有利于数据的备份与恢复等管理工作。因为我们数据库管理员在备份或者恢复数据的时候,可以按表空间来备份数据。如在设计一个大型的分销系统后台数据库的时候,我们可以按省份建立表空间。与浙江省相关的数据文件放置在浙江省的表空间中,北京发生业务记录,则记录在北京这个表空间中。如此,当浙江省的业务数据出现错误的时候,则直接还原浙江省的表空间即可。很明显,这样设计,当某个表空间中的数据出现错误需要恢复的时候,可以避免对其他表空间的影响。
  另外,还可以对表空间进行独立备份。当数据库容量比较大的时候,若一下子对整个数据库进行备份,显然会占用比较多的时间。虽然说Oracle数据库支持热备份,但是在备份期间,会占用比较多的系统资源,从而造成数据库性能的下降。为此,当数据库容量比较大的时候,我们就需要进行设置多个表空间,然后规划各个表空间的备份时间,从而可以提高整个数据库的备份效率,降低备份对于数据库正常运行的影响。
  典型应用四:大表的排序操作。
  我们都知道,当表中的记录比较多的时候,对他们进行查询,速度会比较慢。第一次查询成功后,若再对其进行第二次重新排序,仍然需要这么多的时间。为此,我们在数据库设计的时候,针对这种容量比较大的表对象,往往把它放在一个独立的表空间,以提高数据库的性能。
  典型应用五:日志文件与数据文件分开放,提高数据库安全性。
  默认情况下,日志文件与数据文件存放在同一表空间。但是,这对于数据库安全方面来说,不是很好。所以,我们在数据库设计的过程中,往往喜欢把日志文件,特别是重做日志文件,放在一个独立的表空间中,然后把它存放在另外一块硬盘上。如此的话,当存放数据文件的硬盘出现故障时,能够马上通过存放在另一个表空间的重做日志文件,对数据库进行修复,以减少企业因为数据丢失所带来的损失。
  当然,表空间的优势还不仅仅这些,企业对于数据库的性能要求越高,或者数据库容量越大,则表空间的优势就会越大。
  下面,我们就具体来看看Oracle数据库中表空间的处理方式,看其在性能与安全性方面是否有足够的优势与SQL Server数据库抗衡。
  在数据库设计的时候,我们建议数据库管理员按如下顺序设置表空间。
第一步:建立表空间。
  在设计数据库的时候,首先需要设计表空间。我们需要考虑,是只建立一个表空间呢,还是需要建立多个表空间,以及各个表空间的存放位置、磁盘限额等等。
  到底设计多少个表空间合理,没有统一的说法,这主要根据企业的实际需求去判断。如企业需要对用户进行磁盘限额控制的,则就需要根据用户的数量来设置表空间。当企业的数据容量比较大,而其又对数据库的性能有比较高的要求时,就需要根据不同类型的数据,设置不同的表空间,以提高其输入输出性能。
  第二步:建立用户,并制定用户的默认表空间。
  在建立用户的时候,我们建议数据库管理员要指定用户的默认表空间。因为我们在利用CREATE语句创建数据库对象,如数据库表的时候,其默认是存储在数据库的当前默认空间。若不指定用户默认表空间的话,则用户每次创建数据库对象的时候,都要指定表空间,显然,这并不是很合理。
另外要注意,不同的表空间有不同的权限控制。用户对于表空间A具有完全控制权限,可能对于表空间B就只有查询权限,甚至连连接的权限的都没有。所以,合理为用户配置表空间的访问权限,也是提高数据库安全性的一个方法。

玩转oracle 11g(5):表空间的作用相关推荐

  1. oracle system表空间扩容,Oracle 11g system表空间快速增长解决

    Oracle 11g SYSTEM表空间快速增长问题解决 一..查看SYSTEM表空间前9大的段 SQL> set lines 120 SQL> col owner for a30 SQL ...

  2. oracle 11g b表空间什么情况下自动增加,Oracle 11g表空间——创建和扩展(永久)表空间...

    Oracle 11g表空间--创建和扩展(永久)表空间 本文内容 创建(永久)表空间 查看表空间 扩展表空间 创建(永久)表空间 Oracle 按照区和段空间进行管理表空间. 区管理方式 - 针对区的 ...

  3. oracle 11G创建表空间、用户、配置监听和TNS

    最近总在安装各种版本的oralce数据库做测试,11G,32位的,64位的,12C的,每次都折腾表空间,用户.tns啥的,这里记录下,再也不用现用现百度找了 一.创建表空间.用户 在plsql工具中执 ...

  4. oracle 11g b表空间什么情况下自动增加,oracle 11g 查看表空间使用情况,表空间创建,表空间添加数据文件,修改数据文件自动增长,删除表空间...

    1.查看表空间以及表空间使用情况 SELECT TABLESPACE_NAME "表空间", To_char(Round(BYTES / 1024, 2), '99990.00') ...

  5. oracle表空间暴涨,Oracle 11g SYSTEM表空间暴增问题

    一..查看SYSTEM表空间前9大的段 SQL> set lines 120 SQL> col owner for a30 SQL> col segment_name for a30 ...

  6. oracle 11g创建表空间,创建用户并赋予权限,导入dmp和导出dmp文件

    1.创建表空间(连接数据库后操作) create tablespace mytest logging datafile 'E:\app\mumu7up\oradata\orcl\mytest.dbf' ...

  7. rac建oracle表空间,Oracle Rac创建表空间及用户

    1. 创建表空间: BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FR ...

  8. [Oracle]理解undo表空间

    [Oracle]理解undo表空间 一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中, ...

  9. oracle 给表空间改名,Oracle重命名表空间和删除表空间

    在需要的情况下,可以对表空间的名称进行修改.修改表空间的名称,不会影响到表空间中的数据.但不能修改系统表空间system与sysa Oracle重命名表空间和删除表空间 [日期:2015-03-10] ...

  10. Oracle 11g_管理表空间和数据文件(7)

    1. 表空间和数据文件的关系 在Oracle数据库中,表空间和数据文件之间的关系非常密切,这二者之间相互依存,也就是说,创建表空间时必须创建数据文件,增加数据文件时也必须指定表空间. Oracle磁盘 ...

最新文章

  1. Python openpyxl 之 Excel 文档简单操作
  2. ARM汇编伪指令介绍(全集)
  3. 你以为ACI=SDN?大错特错!
  4. c语言 构造类,C语言之构造类型
  5. mysql之对视图的操作
  6. 适合 Kubernetes 初学者的一些实战练习 (五)
  7. 【图像超分辨率】基于ResNet或GAN的遥感图像超分辨率论文
  8. 判断字符串是否为JSON
  9. python字符串说法错误的是_【单选题】关于Python字符串的表示方法,下列说法错误的是: A. 字符串是字符的序列表示,只能由...
  10. 小度智能屏X10正式发布:10.1英寸超大屏 售价999元
  11. 浅谈一下js中的this
  12. 锐捷长ping_【路由】交换卡下的客户端无法ping通网关
  13. java创建按钮_java中制作一个按钮需要那些步骤
  14. 2018 6 11 没有触角的蚂蚁
  15. NTFS下的USN日志文件
  16. 分数的原码、反码、补码以及整数移码求法
  17. [Unity]Optimize Your Mobile Game Performance中文版
  18. ip route常用语法
  19. Eclipse Debug: Drop to Frame
  20. 服务器数据库异常MySQL_服务器 mysql数据库异常

热门文章

  1. python 爬虫可视化编程_Python爬虫爬取博客实现可视化过程解析
  2. html网页设计要点,网站交互设计的8个要点
  3. java已知一个二叉树_#二叉树复习#
  4. 设计模式杂谈(一)——设计模式概述
  5. WordPress 查询数据库 操作数据库
  6. WordPress导航菜单函数register_nav_menus() 和 wp_nav_menu()
  7. python-上传下载文件
  8. wordpress 文章页面 (single.php)
  9. 基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中
  10. 使用composer下载依赖包下载失败的解决方法