当前位置:  数据库>oracle

为Oracle数据库表选择一个合适的归宿

    来源: 互联网  发布时间:2017-03-21

    本文导语:   众所周知,Oracle数据库表都是存储在表空间当中。从理论上来说,表可以放置在任何一个表空间当中。但是在实际工作中,处于性能、安全方面的考虑,数据库工程师往往不会这么随意。他们在建立数据库之前,会先对表空...

  众所周知,Oracle数据库表都是存储在表空间当中。从理论上来说,表可以放置在任何一个表空间当中。但是在实际工作中,处于性能、安全方面的考虑,数据库工程师往往不会这么随意。他们在建立数据库之前,会先对表空间进行规划,要为Oracle数据库选择一个合适归宿。由于这个没有技术方面的限制,故也没有统一的规则各寻。智者见智,仁者见仁。这更是考验数据库工程师水平的一个问题。

  由于这没有统一的标准,公说公有理,婆说婆有理。为此笔者下面提的几个建议,或许也并不一定是真理。这些只是笔者工作经验的总结,各位读者可以有选择的参考。

  规则一:不要把用户的表放置在System表空间。

  当数据库安装完毕后,数据库据系统会默认创建三个表空间,分别为System、Sysaus、Temp的标空间。前面两个位系统表空间,后面一个为临时表空间。这两个表空间往往系统有特殊的用途。故通常情况下,在系统表空间中应该只存放包含数据字典和Oracle系统对象等等相关的表。如果数据库管理员在系统表空间中建立表(包括其他方案对象如视图等等)的话,将会影响数据库的性能。为此,无论是Oracle官方还是笔者都强烈建议,数据库管理员不要在系统表空间中建立其他的数据表等数据库对象。也就是说,除了系统安装时默认建立的对象之外,Oracle数据库工程师不要往这些系统表空间中放入任何数据库方案对象。默认情况下,数据库在权限方面没有进行这方面的控制,故主要靠用户自觉。为了防止将表建立在系统表空间中,笔者有如下几个建议。

  一是参与数据库开发的用户如果有多个的话,最好给每个用户都设置一个默认的表空间(当然这个表空间不能够是系统表空间)。因为用户在建立数据库表的时候,默认情况下是保存在其设置的默认表空间上。故只要为用户设置默认表空间,则用户往往不会因为疏忽等原因而把数据库表误放入系统表空间了。

  二是可以进行相关的权限控制。如在数据库开发时期,可以限制其他数据库用户往这系统表空间中存放数据库对象的权利。有时会为了防止意外,可以设置一个用户有这个往系统表空间中放东西的权利。如此其他用户需要往System等系统表间中建立数据库表或者其他数据库对象时,则只能够有一个用户来完成。这可以最大限度的限制系统表空间的干净。防止用户表放入到系统表空间,从而提高数据库的运行效率。

  三是在数据库交付使用之前,数据库工程师最好再进行一次检查,看看系统表空间中是否有非系统表的数据表。在交付之前数据库工程师还可以做调整。如果交付后用户已经往系统中存储了数据才发现这个错误的话,那么调整起来工作量将会很大。

  总之一个基本的原则就是系统表空间中不能够存放用户表等数据库对象,否则的话会降低数据库的性能。同时也不要将系统对象移动到其他的非系统表空间上。这个画蛇添足的做法也会降低数据库的性能。


    
 
 

您可能感兴趣的文章:

  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 紧急求救:为什么oracle只能选择一定数据的记录
  • Oracle和Redhat的offer,我该选择那一家,请给点意见。
  • 剖析怎样选择Oracle优化器使你事半功倍
  • jsp如何选择更新oracle的date字段
  • 选择合适的Oracle数据库关闭方法
  • CentOS /Scientific /Oracle Enterprise 关于RHEL免费发行版的选择问题.
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库 iis7站长之家
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • Oracle 12c的九大最新技术特性介绍
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE中DBMS_RANDOM随机数生成包
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • 网间Oracle的连接,远程连接Oracle服务器??
  • 请教:.profile中:if [ -d /opt/oracle/db01/app/oracle/product/9.2.0 ]是什么意思?
  • 在linux 中如何删除oracle db 与卸载oracle.
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3