网络编程
位置:首页>> 网络编程>> 数据库>> 优化Oracle库表设计的若干方法(5)

优化Oracle库表设计的若干方法(5)

 来源:asp之家 发布时间:2010-07-16 13:24:00 

标签:数据库优化,oracle,表


  总结

  贯穿本文的订单主从表实例结构上很简单,但是其粗糙的设计包含了许多问题,这也是许多对Oracle物理存储结构没有很好理解的数据库设计师容易忽视的地方。

  在一般情况下,这样的设计并不会导致严重系统的性能问题,但是精益求精是每一位优秀软件设计师的品质,此外,对于设计师,一定要清楚这样一条规律:对于等质的性能提升,在编码层面往往需要比设计层面付出更多的艰辛。

  在Oracle中提高数据库的性能需要考虑的问题,注意的误区还很多,本文涵盖是一些最常见的问题。下面,我们将提高数据库操作性能方法及一些误区作个小结:

  ·对于大表,可以考虑创建分区表,分区表有范围分区、散列分区、列表分区和散列分区几种,通过它可以达到化大表为小表的目的。

  ·考虑适量的数据冗余,如一个业务表有一个审批状态,审批需要经过多步,每一步对应审批表的一条记录,最后审批的那条记录决定了业务的状态。我们大可在业务表中存放一个审批状态的标志,以取消每次需要通过关联审批表获取业务审批状态的复杂的关联表查询。

  ·不要做太多的关联表查询,一些几乎不发生数据变动的表码表,如性别,学历,婚姻状态等表码表,可以考虑在应用程序启动时一次性地下载到应用程序的内存中缓存起来,在从数据库获取结果集后,再由程序利用这些缓存的表码表数据来翻译这些表码字段,而不要在数据库中通过表间的关联查询方式来翻译这些字段。

  ·常看到一些令我瞠目的设计:在需要进行频繁DML(INSERT,UPDATE,DELETE)操作的表的某些基数低的字段(如性别,婚姻状态)上创建位图索引。位图索引是好东西,但它是有使用范围的,在OLTP系统中,需要进行频繁DML操作的表中不应该出现位图索引,位图索引只适用于几乎不进行DML操作,只进行查询的DSS系统中。此外,聚簇和索引组织表也都更适合DSS系统,而非OLTP系统。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com