Oracle数据库段管理有技巧(一)

运维 数据库运维
Oracle数据库是甲骨文公司的一款关系数据库管理系统,到目前仍在数据库市场上占有主要份额,很多网络都在使用Oracle数据库,Oracle数据库段管理的技巧有哪些,下文中将为大家介绍。

导读:Oracle数据库中,段往往被用来存储特定逻辑对象的所有数据。如当建立数据库表或者索引时,Oracle就会为这些对象分配存储空间,以存放他们所需要的信息。段是由一个或者多个区组成的。不要看段是Oracle数据库中一个不起眼的角色,其实,在其中,仍然隐藏着许多不为人知的管理技巧。若数据库管理员能够掌握这些内容,或许,其工作会变得轻松许多。

  技巧一:对大表执行分区段

  表分区段用于存储分区表中某个分区的数据。如把某一个表分为几个区,每个区就对应一个表分区段。这么设置是可行的。因为根据段管理规则,在一个表空间上可以包含一个或者多个段,但是,一个段只能够存放在一个表空间上。

  在实际工作中,我们经常会碰到这种情况。如在一个大型零售企业的信息化管理系统中,一张销售表的年数据总量可能会达到几亿条,其数据总容量可能会有近十个G。如果平均分配到每个季度的话,则就有2.5G。此时,如果不对这张销售表进行分区分段管理的话,则这一年的销售记录都会存储在一张表中。此时,如果需要做年度分析的话,那么数据库的性能将会受到很大的影响。如现在用户想知道六、七月份空调的销量变化情况,此时数据库就需要扫描整个数据表中近10G的纪录。这需要用户等待比较长的时间。

  但是,此时若数据库管理员在数据库设计的时候,就能够预计到这种情况,对销售表进行分区分段管理。即把这张销售表分区段管理,也就是说,把销售表分为四个分区段,每个季度一个区段。如此的话,若要统计六、七月份的空调销售情况,则只需要查询5G的数据即可,其数据查询量将近减少了一半。显然,在实际工作中,如果对大表进行分区段管理,则可以大大降低I/O次数,并有效提高数据库查询性能。若销售量大的话,甚至可以把销售表分为十二个区段,一个月对应一个区段。

  所以,通过使用分区选项,采用表区段管理大表,可以将一张大表的数据部署到多个不同的分区段中。通过这种管理方式,可以降低I/O(输入输出)读取次数,最终提高I/O性能。这是数据库优化专家在提高数据库性能时,经常用到的一种手段。特别是在零售行业的信息化管理系统中,经常被用到。

  技巧二:合理利用索引组织表段

  在Oracle数据库中,跟索引相关的表段主要有三个,分别为索引段、索引分区段与索引组织表段。

  索引段主要用来存储索引数据。当数据库管理员建立索引时,数据库系统就会自动为索引建立相应的索引段,其名字跟索引的名称相同。在对索引段进行管理时,有一个基本的原则,即一个索引段只能够存放在一个表空间中。

  索引分区段主要用来存储分区索引某个分区的数据。他跟笔者上面所说的表分区段类似。每个分区对应一个索引分区段。通过使用分区选项可以将大索引的数据部署到几个不同的分区段中,从而达到降低输入输出次数、提高数据库性能的目的。不过其在管理中,比表分区段多了一个限制条件,即索引分区只能够建立在分区表上,而不能够建立在普通表上。其他的管理跟分区表段类似,就不再重复阐述了。

  索引组织表是以B数结构来组织表数据的,其对应的段就是索引组织表段。其管理方式跟索引段类似。当数据库管理员建立索引时,就会自动创建这个段,用来保存相关的数据。

  现在摆在数据库管理员面前,就有一个难题。在什么时候用索引段,什么时候用索引组织表段,又在什么时候采用索引分区段呢?为此,笔者给出一个建议,供大家参考。

  通常情况下,如果表中的数据经常需要引用主键列莱检索的话,则可以考虑建立索引组织表,即通过索引组织段来管理。因为如果建立索引组织表段,则表和表主键索引的数据会存放在索引段中。从而提高查询的速度。而在普通表中,表与索引数据分别存放在表段与索引段中。这就是两者最本质的区别。另外需要提醒的是,如果数据库管理员建立索引组织表时,数据库开发人员必须要定义主键列。否则的话,就会以失败告终。

  而如果索引比较大的话,则可以将大索引的数据部署道几个不同的分去段中,这可以有效提高数据库的性能。

这就是我要为大家介绍的Oracle数据库段管理有技巧,这只是一部分,先为大家介绍到这,以后还会继续为大家介绍。

【编辑推荐】

  1. Oracle数据库中的字符处理技巧总结
  2. 讲解Oracle数据库管理员的维护工作
  3. 复制或迁移Oracle数据库的最简单方法
责任编辑:迎迎 来源: IT专家网
相关推荐

2011-03-17 16:35:20

Oracle数据库段管理

2010-04-21 11:43:33

Oracle数据库

2009-03-03 11:41:14

数据库表表分区

2011-07-29 16:21:21

Oracle数据库回滚段

2010-11-15 11:49:18

Oracle数据库的段

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2010-03-18 09:28:14

Oracle数据库迁移

2010-04-06 11:19:28

Oracle数据库

2011-03-03 13:17:43

Oracle数据库

2009-03-16 13:30:55

脚本数据字典Oracle

2009-05-18 13:18:54

字符Oracle字符串

2010-04-23 12:24:06

Oracle数据库

2011-03-04 12:46:57

Oracle数据库自动存储管理(ASM)

2010-04-21 11:53:03

Oracle数据库

2010-04-26 09:10:09

Oracle数据库

2010-04-22 16:56:46

Oracle数据库

2017-10-18 19:12:24

数据库Oracle安全管理

2011-03-11 16:25:53

Oracle数据库

2011-04-11 16:50:13

Oracle数据库索引

2011-03-17 14:09:25

Oracle数据库字符
点赞
收藏

51CTO技术栈公众号