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

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



  总结

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

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

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

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

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

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

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

标签:数据库优化,oracle,表
0
投稿

猜你喜欢

  • Oracle生成单据编号存储过程的实例代码

    2024-01-23 19:10:19
  • python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法

    2023-10-21 08:54:20
  • python字符串循环左移

    2023-08-28 19:32:13
  • python过滤中英文标点符号的实例代码

    2022-11-09 13:43:09
  • Httprunner简介、安装及基本使用教程

    2022-07-13 01:52:52
  • 创建SparkSession和sparkSQL的详细过程

    2023-02-13 14:40:40
  • 通过XSL转换XML文件步骤

    2008-01-27 16:03:00
  • Go 一般方法与接口方法接收者的差异详解

    2024-04-27 15:38:52
  • python列表去重的二种方法

    2022-06-02 05:21:41
  • Golang实现简易的rpc调用

    2024-04-25 15:07:55
  • vue动态注册组件实例代码详解

    2023-07-02 17:01:11
  • jQuery动态添加删除select项(实现代码)

    2024-04-22 12:59:04
  • NodeJs读取JSON文件格式化时的注意事项

    2024-05-02 17:37:03
  • mvn 打包报错:no compiler is provided in this environment

    2023-10-31 00:47:17
  • 在Python中操作列表之List.append()方法的使用

    2021-07-07 04:09:45
  • css清除浮动的方法总结与选择

    2008-06-06 12:58:00
  • js实现选项卡效果

    2024-05-09 10:12:01
  • 基于python 字符编码的理解

    2021-02-04 09:53:25
  • Python实现文件操作帮助类的示例代码

    2023-02-14 16:46:57
  • Python写一个简单的在线编辑器

    2022-07-26 22:49:17
  • asp之家 网络编程 m.aspxhome.com