a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 72|回复: 0

[其他] Oracle认证:管理好ORACLE数据表的几个建议

[复制链接]
发表于 2012-8-4 13:41:06 | 显示全部楼层 |阅读模式
 ORACLE数据库中,表是最根基的内容。可以说,表设计的口角直接跟数据库的机能相关。所以,在设计表的时辰,除了要遵循其固有的数据库准则之外,还需要看小我的数据库打点经验。下面我就把这些经验分享一下,或许对巨匠有所辅佐。   一、 表该存放在哪里?- Y" d. D9 z: C& \; B
  我们都知道,在ORACLE数据库中,使操作空寄这个概念来打点表对象的。在数据库建树的时辰,数据库中已经成立了一些表空间。那么当我们新成立表的时辰,这个新表的位置该放在什么处所呢?这就仿佛吃饭时的坐的位置一样,是有讲究的。一般来说,我们在新建表的时辰,至少要遵循如下建议:
8 {$ _4 S  f- [4 e3 U  一是在数据库建树的时辰,在数据库中已经有了一个SYSTEM的表空间。一般情形下,这个表空间中,只包含数据字典及Oracle系统对象。如不美观我们将我们的表成立在这个空间上的话,那是要降低数据库的机能的。所以,一般我们是不建议用户把表格成立在这个空间上。可是,若我们不只一小我维护数据库,若有八小我配合设计数据库系统时,若何才能保证其他用户不在SYSTEM表空间中成立数据库表格呢?最好的法子就是经由过程权限节制。如我们可以给每个数据库设计人员指定一个默认的表空间,让他们只能在这个表空间中成立表格。如斯的话,就能防止他们在SYSTEM表空间中成立自己的数据表格,从而对数据库的运行机能发生不良影响。所以,若给每个用户设置默认表空间的话,那么用户在成立具体的表时,不器具体指定表空间了。) l( k+ @/ l" ~* I5 G; n
  二是我们在为某个应用设计数据库的时辰,最好先对表的空间进行规划。一般情形下,不要把数据表随意的分手到分歧的表空间中去。如我们在为一个ERP系统设计数据库的时辰,若把采购部门相关的表跟发卖部门相关的表放到两个分歧的表空间中去,这是不明智的做法。这么措置的话,会降低某些数据库打点和维护操作的效率,如数据的备份与恢复操作;而且,也无法集中打点属于某个特定应用的数据。所以,我们一般建议,在规划数据库表空间的时辰,把不异应用的表放在统一个表空间中去。如不美观要区分分歧部门或者分歧模块的表的话,我们可以在表的命名上动脑子。如我们在设计ERP系统的数据库中,可以按照其应用模块的分歧,在前面加上前缀来进行识别。如跟系统根基设置装备摆设相关的表,我们可以用AD为前缀;而跟发卖部门相关的表,我们可以加上SA前缀等等。如斯的话,这些表具体是属于哪个模块的,就一清二嚣张了。完全没有需要为此设置分歧的表空间。这是ORACLE数据库初学者经常会犯的错误。主若是对ORACLE表空间的界说不是很熟悉所导致的。
% R/ p" }$ p* D' \! e1 A6 W  二、 对估量存储数目斗劲大的表时,要授与额外的正视。
$ U! ^" n' G) x% ^9 l9 t  有些表很是的大。我们这边说的大,不必然是说结构复杂,而是指在这缸莨狁中,预期会存储斗劲多的数据。为了提高对这缸莨狁的措置效率,我们在事先要做出必然的放置。否则的话,后续对这些大表进行发芽、插入等操作的话,速度会很慢。所以,我们就有需要在数据库设计的时辰,先预先估量一下表的数据存储量,把一些数据量大的表格,做一些额外的设置。如在ERP软件的数据库设置中,一般来说,产物数据与物料清单数据这两个表的数据量会斗劲大;而从久远看的话,发卖订单、采购订单、出产订单、记账凭证等这种单据类相关的表格其数据量也会斗劲大。一年两年可能感受不出来,可是,到十年后,这个记载数目就会很复杂。而像ERP系统这种大型的信息化打点项目,用个几十年时很正常的工作。而且,为了记实的完整性,也不建议用户把以前的数据删除。所以,为这种应用进行数据库设计的时辰,要充实考虑这些大表的机能问题。
+ l2 I. Y- M9 ~' P2 q$ I( j; a  具体的来说,设计大表的时辰,可以考虑遵循如下的建议。! [! a) Z  J& p0 _9 ^: Q
  一是不要为大表设置存储的限制。在ORACLE数据库中,可觉得每张表格设置存储配额限制。如斯的话,表最安闲量就不能跨越这个限制。对于一些数据容量斗劲小的表格,这么设置时合理的,可以提高空间的操作率。可是,若数据量斗劲大的话,就不建议事先设置表的存储空间了。如ERP系统的发卖订单表,其刚起头可能记实量很小,第一年估量只有1G的记实容量,可是,估量在十年后,这个记实容量就会达到10G了。在这种情形下,我们怎么来给其设置存储空间呢?一开就设置10G空间,这也是不合理的。而且,设置存储空间,就意味着有可能产保留储碎片,从而影响到数据发芽的效率。所以,在数据库表的设计过程中,若某些应用的表可能会有斗劲大的数据容量时,建议不要对其存储空间做出任何的限制。) U, U# N5 U; j+ G, ]8 T9 J% [
  二是要为这大表分配足够的姑且空间。如我们使用ERP系统时,要发芽产物资料信息。我们都知道,产物信息的话,有些企颐魅这个记载数很是的复杂。而且在发芽时,我们还会经常的进行排序操作。若有时辰会按照产物编码对发芽出来的数据进行排序。当记实少的话,还好;可是,当记实多的话,这个排序动作,要求具有斗劲大的姑且存储空间。所以,当某个表估量会有很大的记实数目的时辰,我们就要给其分配足够多的姑且空间。姑且空间的存储参数设置取决于姑且表空间的默认储存参数设置。我们可以更改这些参数,以达到我们对要求。若没有给大表分配足够多的姑且空间的话,则排序的动作将会很慢,而且很可能不成功。1 v. K, i% N9 ]; X! Q" \
  三是要考虑将表与表的索引分手存放。大表所对应的索引凡是也斗劲大。一般来说,索引的数目是跟着表记实的数目增添而增添,两者是接近于一个正比例的关系。所以,凡是表的记实容量大的时辰,索引数目也会很复杂。针对这种情形,我们考虑打破我们膳缦沔讲的表空间的轨则界说。而考虑把表和他的索引分袂存储于分歧的表空间中,甚至在前提许可的情形下,分袂存储于分歧的硬盘中。这么做的益处是什么呢?最大的益处是让索引斗劲轻易的获得所需要的持续的存储空间,从而提高输入输入的效率。通俗的说,就是可以提高数据的发芽效率。如不这么措置的话,发芽安闲量的记实的话,数据库可能需要破耗30秒;而如斯设计的话,就可能把时刻缩短为10秒。这是一个很较着的机能改善。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 21:36 , Processed in 0.280473 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表